[TOC]
本指南介绍了如何使用Ionic应用程序部署到iOS模拟器和设备[capacitor](https://ionicframework.com/docs/faq/glossary#capacitor)要么[cordova](https://ionicframework.com/docs/faq/glossary#cordova)。
> 有两种工作流程,在iOS上运行的应用程序离子:[在Xcode运行](https://ionicframework.com/docs/building/ios#running-with-xcode),并[与离子CLI运行](https://ionicframework.com/docs/building/ios#running-with-the-ionic-cli)。Xcode方法通常更稳定,但Ionic CLI方法提供[现场重装](https://ionicframework.com/docs/faq/glossary#livereload)功能。
## 项目设置
在将应用程序部署到iOS模拟器和设备之前,必须配置本机项目。
1. **生成本机项目(如果项目不存在)**
对于Capacitor,运行以下命令:
~~~
$ ionic capacitor add ios
~~~
对于Cordova,请运行以下命令:
~~~
$ ionic cordova prepare ios
~~~
2. **设置包ID**
对于Capacitor,打开`capacitor.config.json`文件并修改`appId`属性。
对于Cordova,打开`config.xml`文件并修改`id`根元素的属性`<widget>`。有关更多信息,请参阅[Cordova文档](https://cordova.apache.org/docs/en/latest/config_ref/#widget)。
3. **在**Xcode中**打开项目**
对于Capacitor,运行以下命令在Xcode中打开应用程序:
~~~
$ ionic capacitor open ios
~~~
对于Cordova,打开Xcode。使用**文件**»**打开**并找到该应用程序。打开应用程序的`platforms/ios`目录。
4. **在**项目导航器中**,选择项目根目录以打开项目编辑器。在“**标识”**部分下,验证已设置的包ID是否与“包标识符”匹配。**

5. **在同一项目编辑器的“**签名”**部分下,确保已启用“**自动管理签名”**。**然后,选择一个开发团队。给定开发团队,Xcode将尝试自动准备配置和签名。

## 使用Xcode运行
在此工作流程中,Xcode可以自动修复可能发生的常见编译和签名问题。
1. **开发Ionic应用程序并将其同步到本机项目。**
通过每次有意义的更改,Ionic应用程序必须构建到Web资产中,然后才能在iOS模拟器和设备上显示更改。然后必须将Web资产复制到本机项目中。幸运的是,使用单个Ionic CLI命令可以轻松完成此过程。
对于Capacitor,运行以下命令:
~~~
$ ionic capacitor copy ios
~~~
对于Cordova,请运行以下命令:
~~~
$ ionic cordova prepare ios
~~~
2. **在Xcode中,选择目标模拟器或设备,然后单击播放按钮。**

## 使用Ionic CLI运行
Ionic CLI可以使用单个命令构建,复制和部署Ionic应用程序到iOS模拟器和设备。它还可以启动开发服务器,如用于`ionic serve`提供的开发服务器[现场重装](https://ionicframework.com/docs/faq/glossary#livereload)功能。
对于Cordova,运行以下命令以启动长时间运行的CLI进程,该进程启动实时重新加载服务器:
~~~
$ ionic cordova run ios -l
~~~
现在,当对应用程序的源文件进行更改时,将重建Web资产,并且更改将反映在模拟器或设备上,而无需再次部署。
## 使用Safari Web Inspector
Safari为iOS模拟器和设备提供Web Inspector支持。打开“**开发”**菜单并选择模拟器或设备,然后选择“离子应用程序”以打开Web Inspector。
> 如果**开发**菜单是隐藏的,使其能够在**Safari浏览器**»**首选项**»**高级**»**显示开发菜单栏菜单**。

## 查看本机日志
可以在**控制台的**Xcode中找到本机日志。
> 如果隐藏了**控制台**,请在**View**»**Debug Area**»**Activate Console中**启用它。
- 入门
- 介绍
- 什么是Ionic Framework?
- 核心概念
- 浏览器支持
- 版本
- 支持
- 安装
- CLI安装
- 程序包和CDN
- 环境设置
- iOS安装
- Android安装
- 建造项目
- 开始
- 创建
- 项目迁移
- 跨平台
- 运行概述
- 在iOS上运行
- 在Android上运行
- 测试
- 做出贡献的
- web视图
- ionic存储
- 布局
- 结构体
- 响应式网格
- CSS实用工具
- 主题化
- 基本
- 平台样式
- CSS变量
- 高级
- 导航
- Angular
- 编译和发布
- 渐进式Web应用程序
- iOS App Store
- Android Play商店
- PC桌面应用程序
- 常问问题
- 名词解释
- 构建错误 Build Errors
- 运行时错误 Runtime Errors
- 本机错误 Native Errors
- 开发人员提示 Developer Tips
- 更多资源
- 书籍
- 课程
- 实战项目
- 帖子
- 工具
- 视频
- UI组件
- 弹出式菜单 ion-action-sheet
- 弹出菜单控制器 ion-action-sheet-controller
- 弹出式菜单 ion-action-sheet
- 弹出警告 ion-alert
- 弹出警告控制器 ion-alert-controller
- 命令行 CLI
- 原生API
