iOS之從創(chuàng)建(Development、Distribution)證書到發(fā)布

簡介:

驚奇的發(fā)現(xiàn),一模一樣的工程用xcode8和xcode9編譯,證書的報錯信息不一樣 ~ iOS 11又來搞事了,xcode9又來搞事了,以下是我閱覽一些原創(chuàng)文章和官方文檔加上我的理解整理的關(guān)于分發(fā)app的文章。
主要是講證書的知識與當(dāng)中會產(chǎn)生的錯誤以及拓展一些知識。

我們先來看一個流程圖:
接下去要講的內(nèi)容、步驟都是圍繞這個流程圖來講述


發(fā)布流程圖
證書類型

條件:

需要構(gòu)建一個特定于其的分發(fā)提供配置文件。這個配置文件允許應(yīng)用程序進(jìn)行數(shù)字簽名發(fā)布,以便它可以安裝在iOS設(shè)備上。與開發(fā)配置文件類似。

基礎(chǔ)條件

所以,我們現(xiàn)在需要做的,就是:申請p12文件、生成Development證書、生成Distribution證書。
tips:只有團隊代理和管理員可以創(chuàng)建分發(fā)證書和供應(yīng)配置文件。

步驟:

1、申請app ID (將項目中的ID向蘋果申請)
2、申請請求證書,導(dǎo)入鑰匙串(這個就是允許在Mac上簽名的作用)
3、生成Development證書 (作用是真機調(diào)試、發(fā)包測試)
4、生成Distribution證書 (作用是提交到appStore)
5、申請Development描述文件(作用是輸入UDID綁定設(shè)備、配置第7步)
6、申請Distribution描述文件(作用是配置第7步)
7、在項目General、Built Settings中配置好證書
8、上傳到appStore

步驟一、申請app ID


添加ID

描述一下這個app

app中的Bundle ID

選擇app支持的服務(wù)

這里就完成了這一步。

步驟二、申請請求證書,導(dǎo)入鑰匙串
tips:如果已經(jīng)有p12文件,則可以直接使用。沒有則去生成。
生成證書請求文件
tips:不管是申請開發(fā)(Development)證書還是發(fā)布(Distribution)證書,都需要使用證書請求(.certSigningRequest)文件
打開Mac上的鑰匙串,從證書助手那里請求證書。

請求證書

然后選擇將請求文件存到本地磁盤
Snip20180131_12.png

到這里,(.certSigningRequest)文件就已經(jīng)請求存到我們Mac上了
請求文件

tips:也簡稱 CSR file。我們之后要創(chuàng)建的(Development)證書還是發(fā)布(Distribution)證書,都需要使用證書請求(.certSigningRequest)文件。

步驟三、生成Development證書 (真機調(diào)試、發(fā)包測試)


生成對應(yīng)的證書

Development證書我們就勾選Development那一欄。
1)上傳剛才請求的CSR文件。


上傳CSR文件

2)點擊Continue按鍵,并下載生成的證書
在Mac下載欄中看到Development證書已經(jīng)生成好了


Development證書

步驟四、生成Distribution證書 (提交到appStore)
Distribution證書我們就勾選Distribution那一欄
同理也要上傳CSR文件,步驟跟生成Development證書一樣


Distribution證書

到這里:兩個證書都已經(jīng)生成好了,我們需要將這兩個證書保存到鑰匙串中,具體做法是:雙擊保存在Mac的兩個證書。我們?nèi)ヨ€匙串會看到:

鑰匙串保存好的證書

tips:這里為了以防萬一,我們可以可以將證書導(dǎo)出來,下一個開發(fā)者接手項目的時候雙擊P12就可以保存到自己電腦中的鑰匙串中就可以使用,就不用重新生成了。
導(dǎo)出P12文件

來到這里,還沒有成功,我們的測試設(shè)備沒有設(shè)置,這時候,我們需要描述文件去匹配device。
tips:規(guī)定一個開發(fā)者賬號最多可以添加100臺不同的設(shè)備。

步驟五、申請Development描述文件


選擇Provisioning Profiles

選擇Development,點擊右上角的 ”+“號


選擇描述文件的類型

選擇app ID
選擇app ID

選擇Development證書
選擇Development證書

選擇可以測試的設(shè)備
選擇設(shè)備

給描述文件命個名
命名

最后我們把描述文件下載下來。
到這里Development描述文件就完成了。

步驟六、申請Distribution描述文件(配置第7步)
申請Distribution描述文件跟申請Development描述文件是一樣的。只不過過程中你不需要選擇可以測試的設(shè)備。
步驟七、在項目General、Built Settings中配置好證書


General配置

Snip20180202_37.png

到這里,我們就可以做最后一步了,將app上傳到appStore。

拓展:

這張圖是講解三個證書的區(qū)別:


三種證書的區(qū)別

tips:第2種證書是用來測試的,不一定要用。本文中沒有對該證書做描述。

這張圖是講解Apple Developer Program 與 Apple Developer Enterprise Program的異同:

兩種身份

tips:一般我們都是Apple Developer Program這個身份。

關(guān)于TestFlight:

TestFlight is Apple’s beta testing service for iOS apps, and is accessible only through iTunes Connect. It is currently available for iOS 8.0 apps and above. TestFlight allows for beta testing with both internal and external users, and due to a Beta app review for the latter, ensures a much easier process in your final review when publishing to the App Store.
TestFlight是蘋果公司針對iOS應(yīng)用程序的beta測試服務(wù),只能通過iTunes Connect訪問。它目前可用于iOS 8.0及以上版本的應(yīng)用程序。TestFlight允許內(nèi)部和外部用戶進(jìn)行beta測試,并且由于對后者進(jìn)行了測試版應(yīng)用程序?qū)彶椋虼丝梢栽诎l(fā)布到App Store時確保在最終審核中更簡單。

簡言之:TestFlight 就是可以讓我們將app放到appStore上給外部用戶測試,高仿真實的發(fā)布環(huán)境,使測試環(huán)境更加真實,確保了最終的App Store Review的成功機會更高。

可能會出現(xiàn)的報錯信息:
1)doesn't include the com.apple.security.application-groups entitlement.
解答:這個是說你沒有設(shè)置App Groups這個屬性。App Groups是指兩個獨立的app可以共享沙盒的數(shù)據(jù)。如果你不需要這樣干,去檢查你的設(shè)置:

Snip20180202_41.png

這個你是不是打開了,如果打開了,關(guān)掉。如果你真的需要這樣設(shè)置,那么去配置一下,可以參考App之間的數(shù)據(jù)共享——App Group的配置
2)Provisioning profile "XC iOS Ad Hoc: trops.football.amateur" is Xcode managed, but signing settings require a manually managed profile.
解答:Xcode 9 does not accept Xcode-generated Provisioning Profile (with "XC iOS" in the name). So the solution is to clone the Xcode-generated Provisioning Profile in a new one with a different name.就是xcode9不給證書出現(xiàn)“XC iOS”這個字眼。

想要了解更多,你可以閱覽:
1、https://developer.xamarin.com/guides/ios/deployment,_testing,_and_metrics/testflight/
2、https://help.apple.com/xcode/mac/current/#/dev8b4250b57

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容