適用情況:
幫客戶開發的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.