准备软硬件环境
- 申请苹果开发者帐号
- 打包必须在Mac OS(苹果系统)上进行(虚拟机和黑苹果一般都比较卡)
- Mac OS上要装Xcode(IDE)
- 如果要调试那肯定需要一台iPhone
注意: Mac OS系统版本要和Xcode版本号匹配,也就是旧版本Mac OS系统是不能安装新Xcode的.如果要在iPhone上调试app,那Xcode版本号就要和iPhone版本号匹配.所以最好全部使用最新版,然后不要轻易升级,升级一个就要升级另外一个,很麻烦
Xcode8去年就发布了,而且比Xcode7强大好用,建议使用Xcode8,本文也将使用Xcode8打包
Xcode,Mac OS,IOS官方下载地址,建议在App Store上下载
准备打包证书
- 打包证书一直是个很麻烦的事,网上教程大把大把,我一人之言也说不清.现在提供我去年学习的一些教程和经验.至于你多长时间能搞定,看个人造化
iOS证书(.p12)和描述文件(.mobileprovision)申请
最新的 iOS 申请证书与发布流程(2016.7)
iOS-最全的App上架教程
2016最新iOS开发证书配置和安装的详细步骤攻略
iOS所有常用证书,appID,Provisioning Profiles配置说明及制作图文教程
推送-iOS 证书 设置指南
- 如果你们公司有专门的证书管理人员,那就简单点.需要给他提供:
1.你的开发者帐号
2.MacOS导出的证书请求文件(怎么导出上面链接基本都有教程)
3.你iPhone的UUID(上面链接中有教程)
4.你要申请的app证书详情,如下表格
5.如果需要开通推送功能,也要申请推送证书
-
证书设置好了(一个开发证书,一个发布证书),那就下载证书并添加到钥匙串,没有下载权限就让证书管理员下载并导出发给你.注意只需要下载证书,不需要证书描述文件.如下图
把下载的证书导入到钥匙串
你公司可能会开发很多app,所有app只需要一个发布证书;一个开发者一般会有一个开发证书,所以只需导入一个发布证书和一个开发证书到钥匙串.但每个app都要生成不同的证书描述文件,app描述文件用xcode下载就行(下面会讲),不用导入到钥匙串
-
打开xcode登录开发者帐号并下载证书描述文件
- 准备工作完成
苹果开发者官网有时候访问很慢甚至访问不了,也要做好心理准备
代码准备
- 执行命令
ionic serve
先看项目能不能运行起来 - 然后依次执行
cordova platform rm ios
和cordova platform add ios
- 最后执行
ionic build ios
看项目能不能build成功.
很多人build不成功就不知道干什么了,build失败会输出错误信息,请一定认真看错误日志
执行以上命令如果你需要加sudo
前缀,可以看这里
-
在Finder中找到
platform/ios/
目录,在webstorm如下图对ios目录右键可以打开ios目录.也可以使用命令open -R platforms/ios
打开
-
双击
.codeproj
文件,则会用xcode打开app
-
用xcode打开app后,检查一下Plugins目录下有没有文件.如果Plugins目录是空目录你就不用继续往下执行了.肯定build有问题.尽管build可能没报错
设置app签名证书
方式1:自动签名
-
如下图勾选
Automatically manage signing
并选择你的Team名称(发布证书)
-
未启用自动签名的样子
方式2:手动签名
如上图如果app证书设置正确,xcode也下载了证书描述文件,则证书已经设置好了
在真机或模拟器上运行
-
打包前最好在真机上运行一下,看能跑通吗.如果你很有自信可以跳过这步
模拟器启动比较慢,最好选择真机,如下图选择
-
选择好设备后,点击运行,稍等,看项目能运行起来吗
-
如果运行失败,则在下面位置看日志
打包
- 我们需要打包Release(正式版),所以如下图确保Archive选择Release(一般默认是Release)
- 如下图选择Archive进行打包
如果Archive不可点击,如下图,请把设备选择为Generic iOS Device
-
直到出现下图.说明打包已经成功了.然后可以选择导出ipa或上传应用到App Store.我在这里只演示导出ipa,如下图选择Export...
-
操作上基本是一路点下一步,最后导出到桌面上
-
选择自动或者手动签名,我这里演示手动(一般选择自动不能导出选择手动)
-
选择导出的目录
打包完成
其他
- 如果app只修改了src下面的代码,不需要执行
cordova platform rm ios
和cordova platform add ios
,只需要执行ionic build ios
,然后用xcode打开app,已经打开则不需要重新打开,签名证书之前设置好的也不需要重新设置