自己在網(wǎng)上搜索下了相關(guān)知識(shí),感覺講的都不是很全面,自己在這里總結(jié)整理下,有不對(duì)的地方希望大家指出,謝謝。
1、 蘋果開發(fā)者賬號(hào)有四種類型,分別是:
個(gè)人開發(fā)者賬號(hào):99$一年,可以在AppStore上架,并且在app后面顯示個(gè)人ID;每年最多只能添加一百個(gè)蘋果設(shè)備對(duì)app進(jìn)行真機(jī)調(diào)試;只要付費(fèi)就可以申請(qǐng);一般是個(gè)人使用或者小公司偶爾使用(AppStore顯示的是個(gè)人名字,不是公司名)。
企業(yè)開發(fā)者賬號(hào):299$一年,不可以在AppStore上架(所以也就不需要蘋果的審核就能直接批量安裝在蘋果設(shè)備上),一般只在自己企業(yè)內(nèi)部使用,對(duì)設(shè)備數(shù)量沒有任何限制;申請(qǐng)的時(shí)候還需要公司的鄧白氏編碼DUNS(這個(gè)可以在蘋果開發(fā)者中心免費(fèi)申請(qǐng))
公司開發(fā)者賬號(hào):99$一年,可以在App Store上架,可以自定義的團(tuán)隊(duì)名稱。最重要的是公司賬號(hào)可以允許多個(gè)開發(fā)者協(xié)作開發(fā),比個(gè)人多一些帳號(hào)管理的設(shè)置,分4種管理級(jí)別權(quán)限。申請(qǐng)的時(shí)候同樣需要公司的鄧白氏編碼。(一般公司的話會(huì)選擇這個(gè))
教育賬號(hào): 什么東東,沒有碰到過
2、 下面從上到下說說蘋果開發(fā)者賬號(hào)個(gè)人中心的內(nèi)容,Certificates、Identifiers、Devices、Provisioning Profiles
-
Certificates:有開發(fā)證書和發(fā)布證書。開發(fā)證書都是一樣的,我們只說說發(fā)布證書:
AdHoc:這個(gè)證書一般用在上線蘋果商店前最后一次的調(diào)試,它所用是的證書和配置文件和正式上線商店時(shí)用的證書和配置文件是一樣的,他們的不同點(diǎn)在于,這個(gè)證書中指定了哪些蘋果設(shè)備(最多100)才能安裝此app,所以一般公司就用打個(gè)AdHoc包,對(duì)設(shè)備上線前做最后一步測試
AppStore:正式發(fā)布到蘋果商店的證書,這個(gè)是我們上線時(shí)候用到最多的一種證書,這個(gè)證書打包出來的ipa包對(duì)安裝設(shè)備數(shù)量沒有限制
In House: 這個(gè)證書的創(chuàng)建選項(xiàng)現(xiàn)在的好像只能在企業(yè)賬號(hào)中才能看到,這個(gè)打包出來的app不能再蘋果商店上線,對(duì)安裝的設(shè)備數(shù)量也沒有限制。這個(gè)可以借助一些三方平臺(tái)比如蒲公英、fire實(shí)現(xiàn)方便安裝(掃掃二維碼就能下載很方便的),當(dāng)然用工具iTools安裝也是可以的
PS:選擇不同類型的證書,對(duì)應(yīng)著什么樣發(fā)布類型,打包出來的app也有不能的使用場所。
-
CSR文件:生成證書的過程中,有一步是需要我們上傳CSR文件的。為什么必須要上傳它?CSR文件是用于換取證書的公鑰文件,導(dǎo)出CSR這個(gè)過程其實(shí)就是電腦向證書機(jī)構(gòu)申請(qǐng)憑證的過程。證書是你用電腦制作的并且頒發(fā)給你的電腦的。但是這臺(tái)電腦是否具有制作證書的能力,就是要這個(gè)CSR文件來憑證。CSR從鑰匙串中導(dǎo)出,具體步驟就不在描述。
在安裝了Xcode后,Xcode會(huì)在項(xiàng)目編譯期間使用你的代碼簽名驗(yàn)證,這個(gè)驗(yàn)證是一個(gè)由Apple認(rèn)證過的公鑰-私鑰對(duì)組成,私鑰存儲(chǔ)在你的鑰匙串中(Mac本地,在系統(tǒng)實(shí)用工具中),公鑰包含在證書(Certificates)中,證書在本地鑰匙串和開發(fā)者賬號(hào)中都有存儲(chǔ)。既然私鑰是存在于我們本地電腦的鑰匙串中,而Xcode編譯需要公鑰和私鑰,那么豈不是說這個(gè)證書申請(qǐng)下來,只能我們自己的電腦能用嗎?當(dāng)然不是這樣,當(dāng)同事需要用測試證書進(jìn)行真機(jī)調(diào)試的時(shí)候,我們可以通過導(dǎo)出p12給他們使用
p12:又稱為個(gè)人信息交換證書。此證書實(shí)際包含了cer證書對(duì)應(yīng)的公鑰和本地鑰匙串對(duì)應(yīng)的私鑰信息。所以p12包含了公鑰私鑰,我們把p12分發(fā)給團(tuán)隊(duì)其他成員,再配上相應(yīng)的配置文件,他們就可以正常使用了。
-
注意:cer文件沒有包含私鑰,所以別人的電腦上用此證書時(shí)找不到對(duì)應(yīng)私鑰,從而使用不了。在導(dǎo)出p12的時(shí)候是點(diǎn)擊相應(yīng)的證書導(dǎo)出的
導(dǎo)出p12.png
Identifiers:這里只說說我們平常用的App IDs,其余的幾個(gè)就不說了
App ID其實(shí)就是一個(gè)App的身份證,一個(gè)App的唯一標(biāo)示。在Project中稱為Bundle ID
- 上圖中的Explicit App ID 是精準(zhǔn)的appID,一般在公司中就是使用的這個(gè),因?yàn)檫@個(gè)才能包含下面所有的服務(wù)(一般我們用到最多的服務(wù)是推送和支付)
- 如果我們選擇Wildcard AppID,下圖的服務(wù)中我們能選擇的就很少了,不能進(jìn)行推送測試。使用它的好處在于,我們個(gè)人開發(fā)學(xué)習(xí)的過程中需要?jiǎng)?chuàng)建許多工程,如果我們進(jìn)行真機(jī)測試的話,我們不可能一個(gè)個(gè)的創(chuàng)建appID吧,這時(shí)候我們使用通配符創(chuàng)建個(gè)appID的話,我們工程的BoundId只要*前面部分是確定的,我們就可以進(jìn)行真機(jī)調(diào)試。感覺個(gè)人學(xué)習(xí)中多個(gè)項(xiàng)目用到真機(jī)調(diào)試的時(shí)候,可以申請(qǐng)一個(gè)通配符AppID
Devices:添加設(shè)備,告訴蘋果,我的這個(gè)設(shè)備能進(jìn)行真機(jī)調(diào)試,沒有值得說的
Provisioning Profiles: 描述文件的作用是描述了可由哪臺(tái)電腦,把哪個(gè)App,安裝到哪臺(tái)手機(jī)上面。一個(gè)描述文件的制作是需要App ID、Device、Certificate這些信息的。一般我們把配置文件分為兩類:需要Device的 和 不需要Device的
不帶device信息的描述文件只有發(fā)布到App Store和In House兩種情況下才使用
了解這些基本的原理后,我們以后再碰見這類問題就能融會(huì)貫通,舉一反三了,關(guān)于具體的申請(qǐng)證書方法,這些的話去百度一搜一大推,我就不重復(fù)。有錯(cuò)誤的地方希望大家指出,謝謝。