適用情況:
幫客戶開(kāi)發(fā)的App,要以客戶名義(客戶開(kāi)發(fā)者賬號(hào))上架,但是客戶又不提供賬號(hào)密碼,然后也不能在iTunes Connect邀請(qǐng)你作為開(kāi)發(fā)者。
整體的流程,大概如下:
- 雙方定義好App ID(也就是Xcode中的Bundle Identifer——那個(gè)反向域名字符串);
- 客戶提供對(duì)應(yīng)的證書(shū)和文件;
- 開(kāi)發(fā)者用對(duì)應(yīng)的證書(shū)和文件,打包成ipa文件發(fā)給客戶;
- 客戶自行上傳ipa文件,并進(jìn)行其他必要操作,完成上架。
讓客戶提供必要的證書(shū)和文件
這里需要客戶提供的證書(shū)和文件,具體指
- 產(chǎn)品證書(shū)/Production Certificate(App Store and Ad Hoc類(lèi)型),同時(shí)要提供證書(shū)的安裝密碼。(備注:此證書(shū)生成后,類(lèi)型顯示的是「iOS Distribution」,所以也有人叫發(fā)布證書(shū))
- Provisioning Profile文件(也有叫「描述文件」、「PP文件」的)(備注:Provisioning Profile中的App ID,是你們之前協(xié)商好的App ID)。
開(kāi)發(fā)者打包ipa文件
拿到證書(shū)和文件后,都進(jìn)行雙擊安裝,安裝證書(shū)時(shí)需要輸入密碼。Provisioning Profile則不會(huì)有任何反應(yīng)。
1 打開(kāi)項(xiàng)目:在TARGETS > General中選擇對(duì)應(yīng)的選項(xiàng),如下圖:

選擇正確的Provisioning Profile
2 點(diǎn)擊:Product > Archive
備注:如果是灰色不可點(diǎn)擊。模擬器下拉框,選擇真機(jī)或Generic iOS Device
3 Archive完畢后,導(dǎo)出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 正式導(dǎo)出ipa文件,如下圖:

Export
最后,把打包出來(lái)的ipa文件,發(fā)給客戶上傳到App Store就好了。
坑
這中途遇到的坑還是有幾個(gè)的,比如App ID和Bundle Identifer不一致,客戶打包的Provisioning Profile中選擇的產(chǎn)品證書(shū)(發(fā)布證書(shū))和提供給你的產(chǎn)品證書(shū)(發(fā)布證書(shū))不一致……
而其中有個(gè)坑估計(jì)每個(gè)人都會(huì)踩到的:開(kāi)發(fā)者導(dǎo)出ipa文件所用的Xcode版本,如果和客戶上傳ipa文件所用的Xcode版本不一致,會(huì)報(bào)如下錯(cuò)誤:

Error
解決辦法:打包ipa文件和上傳ipa文件時(shí),保持兩邊Xcode版本一致。
Done, have fun.