前言:
iOS應(yīng)用以流暢和安全著稱赛不,其中的安全性主要依靠的就是蘋果開發(fā)中使用的一套證書流程碑宴。證書是用來給應(yīng)用程序簽名的裆甩,只有經(jīng)過簽名的應(yīng)用程序才能保證他的來源是可信任的之斯,并且代碼是完整的,未經(jīng)修改的庞萍。證書初次使用會感覺流程很復(fù)雜拧烦,其實對于流程理解了就會覺得簡單了。
模擬流程
在講解之前钝计,我先用現(xiàn)實中的一件事做個比方恋博,這樣理解起來簡單一點齐佳。比如:我要成立一個汽車廠。
- 按照規(guī)定债沮,我要先拿到經(jīng)營許可證炼吴,然后拿著經(jīng)營許可證去政府的車輛審批部門去申請制造汽車的資質(zhì)證明書,而車輛審批部門會給我發(fā)倆個資質(zhì)證明書疫衩,一個搞內(nèi)部研發(fā)的資質(zhì)證明書硅蹦,一個可以投入市場的資質(zhì)證明書,都是只有一年期限闷煤。
- 拿到資質(zhì)證明書后童芹,才可以開始汽車制造。首先我還必須要注冊一個商標(biāo)鲤拿,這個商標(biāo)要登記在車輛審批部門假褪,防止別人偽造。
- 然后我拿著研發(fā)資質(zhì)證明書皆愉,就可以進行研發(fā)了嗜价,經(jīng)過科(加)學(xué)(班)規(guī)(加)范(點)的研發(fā)艇抠,車子終于成型幕庐,我想投入市場,但是為了安全家淤,最好經(jīng)過測試合格后才可以异剥。
- 這時候我可以進行內(nèi)部測試,審批部門每年會給我100個名額絮重,我可以最多找100個人測試冤寿,這一百個人不必非要在授權(quán)的門店里買車,可以直接試車青伤。需要注意的是督怜,我在進行內(nèi)部試車的時候,也分倆種情況狠角,一種是在我自己規(guī)劃的場地進行試車号杠,另一種就是在外面的正常的公路上進行試車,但都是在沒有檢驗合格證的情況下試車的丰歌。
- 試過之后姨蟋,我就可以拿著投入市場的資質(zhì)證明書給車檢部門發(fā)出申請,然后他們要對我的車子進行檢驗審核立帖,沒有問題了眼溶,給我一個檢驗合格證,我就可以正式投入市場了晓勇。
- 投入市場后堂飞,來買車的人會看到我的資質(zhì)證明書和我注冊的商標(biāo)以及檢驗合格證就可以確定這是正品灌旧,就可以放心來買了。
- 如果我想在車上安裝導(dǎo)航系統(tǒng)绰筛,同樣的也要申請倆個證書节榜,一個開發(fā)導(dǎo)航資質(zhì)證明書,一個發(fā)布導(dǎo)航資質(zhì)證明書别智,同樣是需要和商標(biāo)綁在一起宗苍,一年期限。當(dāng)然我也可以委托第三方廠家給我開發(fā)薄榛,只要我提供倆個資質(zhì)證明書即可讳窟。
實際開發(fā)流程
接下來,就回到iOS中的開發(fā)流程中來敞恋。
- 首先我需要一個開發(fā)者賬號丽啡,分為個人賬號(Individual) 和 公司團隊賬號(Company/Organization)和企業(yè)賬號(Enterprise)三種類型,個人和公司團隊都是99美元一年硬猫,可以發(fā)布到AppStore上补箍,每年可以有100個蘋果的iOS設(shè)備測試。企業(yè)賬號是299美元一年啸蜜,但是不能發(fā)布到App Store坑雅,只能企業(yè)內(nèi)部應(yīng)用,蘋果的iOS設(shè)備數(shù)量不限制衬横。就好比我生產(chǎn)的車不能發(fā)布到市場上裹粤,只能在自己的地盤上試驗,一旦上路就是黑車了蜂林,被檢查到會被吊銷營業(yè)資格遥诉。
-
有了賬號,就可以申請經(jīng)營許可證了噪叙,也就是通過Keychain(鑰匙串)的證書助理從證書頒發(fā)機構(gòu)請求證書矮锈。
結(jié)果keychain 將生成一個包含開發(fā)者身份信息和公鑰的CSR(Certificate Signing Request)文件。私鑰 private key始終保存在 Mac OS 的 Keychain Access 中睁蕾,用于簽名(CodeSign)本機對外發(fā)布的 App苞笨;公鑰 public key 一般隨證書散布出去,對 App 簽名進行校驗認(rèn)證惫霸。用戶必須妥善保存本地 Keychain 中的 private key猫缭,以防偽冒。
-
使用CSR文件到開發(fā)者中心申請證書壹店。首先要了解幾個概念猜丹,Certificates(證書),Identifiers(標(biāo)識符)硅卢,Devices(設(shè)備)射窒,Provisioning Profiles(描述文件)藏杖。頁面如圖所示:
Certificates(證書)就是到車輛審批部門去申請的資質(zhì)證明書,Identifiers(標(biāo)識符)就是車的商標(biāo)脉顿,Devices(設(shè)備)就是可以試車的那100個人蝌麸,Provisioning Profiles(描述文件)就是包含了證書,標(biāo)識符和設(shè)備的文件艾疟,也就是客戶試車的時候的憑證来吩。申請證書頁面如圖:
- 接下來去申請一個App ID讼育,也就是去申請一個汽車商標(biāo)帐姻。在“ Identifiers”一欄下選擇“App IDs”稠集,可查看所有已申請的App IDs,點擊右上“+”,需要注意饥瓷,App ID一般是反域名格式剥纷,如:com.company.test。在“App Services”欄下選擇應(yīng)用使用到的服務(wù)(如要使用推送功能呢铆,勾選“Push Notifications”)晦鞋。
- 添加調(diào)試設(shè)備,也就是可以試車的人員棺克,使用UDID來標(biāo)識每一臺設(shè)備都有唯一性悠垛,注意,一年只有100個名額娜谊,即使刪除掉也算用去了一個名額确买。
-
添加描述文件(Provisioning Profile),描述文件和證書的環(huán)境相對應(yīng)纱皆。描述文件就類似于售車時湾趾,給客戶列出的一系列合法文件證明芭商。
1.Provisioning Profile決定Xcode用哪個證書(公鑰)/私鑰組合(Key Pair/Signing Identity)來簽名應(yīng)用程序(Signing Product),將在應(yīng)用程序打包時嵌入到.ipa包里。
2.Provisioning Profile把這些信息全部打包在一起搀缠,方便我們在調(diào)試和發(fā)布程序打包時使用铛楣。這樣,只要在不同的情況下選擇不同的Provisioning Profile文件就可以了艺普。
3.Provisioning Profile也分為Development和Distribution兩類簸州,有效期同Certificate一樣。Development版本的ProvisioningProfile用于開發(fā)調(diào)試歧譬,Distribution版本的ProvisioningProfile主要用于提交App Store審核勿侯,其不指定開發(fā)測試的Devices。
4.Xcode 將全部供應(yīng)配置文件(包括用戶手動下載安裝的和 Xcode 自動創(chuàng)建的Provisioning Profile放在目錄 [~/Library/MobileDevice/Provisioning Profiles] 下缴罗。
生成成功后的Provisioning Profile下載到本地助琐,雙擊會自動安裝到xcode中。
7.最后面氓,如果需要開通推送功能兵钮,還需要再申請倆個推送證書,流程同開發(fā)證書一樣舌界。也可以使用第三方推送平臺掘譬,但是得提供倆個環(huán)境的推送證書。
一切準(zhǔn)備完畢呻拌,這時候就可以打包提交到AppStore進行審核了葱轩,類似于車檢部門進行審核,審核通過后發(fā)到AppStore市場上藐握,就類似于拿到了檢驗合格證了靴拱。
iOS開發(fā)中的證書使用的流程就是這樣了,希望本文能幫助到你更好的理解iOS開發(fā)猾普。
參考:
iOS Provisioning Profile(Certificate)與Code Signing詳解
蘋果IOS開發(fā)者賬號總結(jié)
iOS開發(fā)證書與配置文件的使用