通俗易懂的講解iOS中的證書知識

前言:

iOS應(yīng)用以流暢和安全著稱赛不,其中的安全性主要依靠的就是蘋果開發(fā)中使用的一套證書流程碑宴。證書是用來給應(yīng)用程序簽名的裆甩,只有經(jīng)過簽名的應(yīng)用程序才能保證他的來源是可信任的之斯,并且代碼是完整的,未經(jīng)修改的庞萍。證書初次使用會感覺流程很復(fù)雜拧烦,其實對于流程理解了就會覺得簡單了。

模擬流程

在講解之前钝计,我先用現(xiàn)實中的一件事做個比方恋博,這樣理解起來簡單一點齐佳。比如:我要成立一個汽車廠。

  1. 按照規(guī)定债沮,我要先拿到經(jīng)營許可證炼吴,然后拿著經(jīng)營許可證去政府的車輛審批部門去申請制造汽車的資質(zhì)證明書,而車輛審批部門會給我發(fā)倆個資質(zhì)證明書疫衩,一個搞內(nèi)部研發(fā)的資質(zhì)證明書硅蹦,一個可以投入市場的資質(zhì)證明書,都是只有一年期限闷煤。
  2. 拿到資質(zhì)證明書后童芹,才可以開始汽車制造。首先我還必須要注冊一個商標(biāo)鲤拿,這個商標(biāo)要登記在車輛審批部門假褪,防止別人偽造。
  3. 然后我拿著研發(fā)資質(zhì)證明書皆愉,就可以進行研發(fā)了嗜价,經(jīng)過科(加)學(xué)(班)規(guī)(加)范(點)的研發(fā)艇抠,車子終于成型幕庐,我想投入市場,但是為了安全家淤,最好經(jīng)過測試合格后才可以异剥。
  4. 這時候我可以進行內(nèi)部測試,審批部門每年會給我100個名額絮重,我可以最多找100個人測試冤寿,這一百個人不必非要在授權(quán)的門店里買車,可以直接試車青伤。需要注意的是督怜,我在進行內(nèi)部試車的時候,也分倆種情況狠角,一種是在我自己規(guī)劃的場地進行試車号杠,另一種就是在外面的正常的公路上進行試車,但都是在沒有檢驗合格證的情況下試車的丰歌。
  5. 試過之后姨蟋,我就可以拿著投入市場的資質(zhì)證明書給車檢部門發(fā)出申請,然后他們要對我的車子進行檢驗審核立帖,沒有問題了眼溶,給我一個檢驗合格證,我就可以正式投入市場了晓勇。
  6. 投入市場后堂飞,來買車的人會看到我的資質(zhì)證明書和我注冊的商標(biāo)以及檢驗合格證就可以確定這是正品灌旧,就可以放心來買了。
  7. 如果我想在車上安裝導(dǎo)航系統(tǒng)绰筛,同樣的也要申請倆個證書节榜,一個開發(fā)導(dǎo)航資質(zhì)證明書,一個發(fā)布導(dǎo)航資質(zhì)證明書别智,同樣是需要和商標(biāo)綁在一起宗苍,一年期限。當(dāng)然我也可以委托第三方廠家給我開發(fā)薄榛,只要我提供倆個資質(zhì)證明書即可讳窟。
實際開發(fā)流程

接下來,就回到iOS中的開發(fā)流程中來敞恋。

  1. 首先我需要一個開發(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è)資格遥诉。
  2. 有了賬號,就可以申請經(jīng)營許可證了噪叙,也就是通過Keychain(鑰匙串)的證書助理從證書頒發(fā)機構(gòu)請求證書矮锈。


    455017-e84ef019ef4984b2.png

    結(jié)果keychain 將生成一個包含開發(fā)者身份信息和公鑰的CSR(Certificate Signing Request)文件。私鑰 private key始終保存在 Mac OS 的 Keychain Access 中睁蕾,用于簽名(CodeSign)本機對外發(fā)布的 App苞笨;公鑰 public key 一般隨證書散布出去,對 App 簽名進行校驗認(rèn)證惫霸。用戶必須妥善保存本地 Keychain 中的 private key猫缭,以防偽冒。


    20150114091003101.jpg
  3. 使用CSR文件到開發(fā)者中心申請證書壹店。首先要了解幾個概念猜丹,Certificates(證書),Identifiers(標(biāo)識符)硅卢,Devices(設(shè)備)射窒,Provisioning Profiles(描述文件)藏杖。頁面如圖所示:


    Snip20160808_2.png

    Certificates(證書)就是到車輛審批部門去申請的資質(zhì)證明書,Identifiers(標(biāo)識符)就是車的商標(biāo)脉顿,Devices(設(shè)備)就是可以試車的那100個人蝌麸,Provisioning Profiles(描述文件)就是包含了證書,標(biāo)識符和設(shè)備的文件艾疟,也就是客戶試車的時候的憑證来吩。申請證書頁面如圖:


    455017-7acbae0d954a0580.png
    其中,Development就是開發(fā)證書蔽莱,Production是發(fā)布證書弟疆,細(xì)分起來,發(fā)布證書分為AppStore發(fā)布證書和Ad Hoc發(fā)布證書盗冷,AppStore證書就是提交審核時用到的證書怠苔,也就類似于投入市場的資質(zhì)證明書,Ad Hoc證書可以模擬生產(chǎn)環(huán)境仪糖,類似于在外面的正常的公路上試車那種類型柑司。最后生成成功后download下來并雙擊導(dǎo)入鑰匙串。
    20150114091440719.jpg
    在多臺機器上共享證書锅劝,在 Keychain Access|Certificates 中選中欲導(dǎo)出的 certificate 或其下 private key攒驰,右鍵 Export導(dǎo)出p12文件,其他 Mac 機器上雙擊 Certificates.p12(如有密碼需輸入密碼)即可安裝該共享證書鸠天。
  4. 接下來去申請一個App ID讼育,也就是去申請一個汽車商標(biāo)帐姻。在“ Identifiers”一欄下選擇“App IDs”稠集,可查看所有已申請的App IDs,點擊右上“+”,需要注意饥瓷,App ID一般是反域名格式剥纷,如:com.company.test。在“App Services”欄下選擇應(yīng)用使用到的服務(wù)(如要使用推送功能呢铆,勾選“Push Notifications”)晦鞋。
  5. 添加調(diào)試設(shè)備,也就是可以試車的人員棺克,使用UDID來標(biāo)識每一臺設(shè)備都有唯一性悠垛,注意,一年只有100個名額娜谊,即使刪除掉也算用去了一個名額确买。
  6. 添加描述文件(Provisioning Profile),描述文件和證書的環(huán)境相對應(yīng)纱皆。描述文件就類似于售車時湾趾,給客戶列出的一系列合法文件證明芭商。


    Snip20160808_3.png

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)境的推送證書。


Snip20160808_5.png

一切準(zhǔn)備完畢呻拌,這時候就可以打包提交到AppStore進行審核了葱轩,類似于車檢部門進行審核,審核通過后發(fā)到AppStore市場上藐握,就類似于拿到了檢驗合格證了靴拱。


iOS開發(fā)中的證書使用的流程就是這樣了,希望本文能幫助到你更好的理解iOS開發(fā)猾普。

參考:
iOS Provisioning Profile(Certificate)與Code Signing詳解
蘋果IOS開發(fā)者賬號總結(jié)
iOS開發(fā)證書與配置文件的使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末袜炕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子初家,更是在濱河造成了極大的恐慌偎窘,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溜在,死亡現(xiàn)場離奇詭異陌知,居然都是意外死亡,警方通過查閱死者的電腦和手機掖肋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門仆葡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人培遵,你說我怎么就攤上這事浙芙〉谴蹋” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵嗡呼,是天一觀的道長纸俭。 經(jīng)常有香客問我,道長南窗,這世上最難降的妖魔是什么揍很? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮万伤,結(jié)果婚禮上窒悔,老公的妹妹穿的比我還像新娘。我一直安慰自己敌买,他們只是感情好简珠,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虹钮,像睡著了一般聋庵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芙粱,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天祭玉,我揣著相機與錄音,去河邊找鬼春畔。 笑死脱货,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的律姨。 我是一名探鬼主播振峻,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼线召!你這毒婦竟也來了铺韧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤缓淹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后塔逃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體讯壶,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年湾盗,在試婚紗的時候發(fā)現(xiàn)自己被綠了伏蚊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡格粪,死狀恐怖躏吊,靈堂內(nèi)的尸體忽然破棺而出氛改,到底是詐尸還是另有隱情,我是刑警寧澤比伏,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布胜卤,位于F島的核電站,受9級特大地震影響赁项,放射性物質(zhì)發(fā)生泄漏葛躏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一悠菜、第九天 我趴在偏房一處隱蔽的房頂上張望舰攒。 院中可真熱鬧,春花似錦悔醋、人聲如沸摩窃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽偶芍。三九已至,卻和暖如春德玫,著一層夾襖步出監(jiān)牢的瞬間匪蟀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工宰僧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留材彪,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓琴儿,卻偏偏與公主長得像段化,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子造成,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容