适用情况:
帮客户开发的App,要以客户名义(客户开发者账号)上架,但是客户又不提供账号密码,然后也不能在iTunes Connect邀请你作为开发者。
整体的流程,大概如下:
- 双方定义好App ID(也就是Xcode中的Bundle Identifer——那个反向域名字符串);
- 客户提供对应的证书和文件;
- 开发者用对应的证书和文件,打包成ipa文件发给客户;
- 客户自行上传ipa文件,并进行其他必要操作,完成上架。
让客户提供必要的证书和文件
这里需要客户提供的证书和文件,具体指
- 产品证书/Production Certificate(App Store and Ad Hoc类型),同时要提供证书的安装密码。(备注:此证书生成后,类型显示的是「iOS Distribution」,所以也有人叫发布证书)
- Provisioning Profile文件(也有叫「描述文件」、「PP文件」的)(备注:Provisioning Profile中的App ID,是你们之前协商好的App ID)。
开发者打包ipa文件
拿到证书和文件后,都进行双击安装,安装证书时需要输入密码。Provisioning Profile则不会有任何反应。
1 打开项目:在TARGETS > General中选择对应的选项,如下图:
选择正确的Provisioning Profile
2 点击:Product > Archive
备注:如果是灰色不可点击。模拟器下拉框,选择真机或Generic iOS Device
3 Archive完毕后,导出ipa文件
3.1 选择「Save for iOS App Store Deployment」,如下图:
Save for iOS App Store Deployment
3.2 Development Team选择Use local signing assets,如下图:
Use local signing assets
3.3 正式导出ipa文件,如下图:
Export
最后,把打包出来的ipa文件,发给客户上传到App Store就好了。
坑
这中途遇到的坑还是有几个的,比如App ID和Bundle Identifer不一致,客户打包的Provisioning Profile中选择的产品证书(发布证书)和提供给你的产品证书(发布证书)不一致……
而其中有个坑估计每个人都会踩到的:开发者导出ipa文件所用的Xcode版本,如果和客户上传ipa文件所用的Xcode版本不一致,会报如下错误:
Error
解决办法:打包ipa文件和上传ipa文件时,保持两边Xcode版本一致。
Done, have fun.