你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS技巧綜合 >> 關於 iOS 證書,你必須了解的知識

關於 iOS 證書,你必須了解的知識

編輯:IOS技巧綜合
[摘要]本文是對關於 iOS 證書,你必須了解的知識的講解,對學習IOS蘋果軟件開發有所幫助,與大家分享。

收錄待用,修改轉載已取得騰訊雲授權


最新騰訊雲技術公開課直播,提問騰訊W3C代表,如何從小白成為技術專家?點擊了解活動詳情。

作者 |陳澤濱
編輯 | 顧鄉

從事iOS開發幾年,越來越發現,我們的開發者往往聚焦在程序的開發,如何實現一個功能,如何寫好一行代碼。但對iOS應用開發到發布過程中必不可少的一環,證書簽名相關部分,卻只是一知半解。真正過程中遇到問題:如真機調試、團隊開發證書環境同步,產品發布上架,才胡亂折騰一通,最終解決問題的時候其實對證書的構成與機理還是一無所知,不知所以然。

本文從iOS證書體系的基本構成模塊 (Certificates, Identifiers, Device, ProvisioningProfile) 入手,一步步解釋各模塊的內容與注意項;同時文末簡單補充了iOS證書日常管理經驗項。力求為大家答疑解惑,補上iOS應用開發中不可或缺卻往往被人忽視的一個知識面。

1. 證書(Certificates)

代碼簽名可以讓系統確保你的應用來源,並確保你的應用不被修改(執行代碼修改後,原簽名將失效)。

首先你要有一個證書,通過Keychain的證書助理生成Certificates Signing Request文件後,即可進一步得到最後的證書。完整的iOS證書包含公鑰與私鑰,也就是所謂的非對稱加密方式。在這裡,公鑰用於驗證,私鑰用於簽名。與此同時,僅包含公鑰的證書文件(.cer)將會被放置在開發帳號下提供到開發團隊人員下載共享使用。然而,我們知道僅包含公鑰的證書是不具備簽名能力,而私鑰又保存在生成證書的機器Keychain內,所以當其他開發人員需要使用這份證書時候,我們需要將完整的公鑰私鑰導出生成個人信息交換文件(.p12),這樣的證書環境才是完整可用的。

特別值得一提的是,我們日常遇到的revoke證書,也就是因為開發人員當下的開發環境沒有包含可用的私鑰,revoke相當於重新申請證書,暴力操作過後其他開發人員的舊證書(包含私鑰)將不可用,需要revoke的開發人員將最新的證書信息同步出來。

證書分為開發(Developerment)與發布(Distribution)兩類,各自用途顧名思義,這裡不再累述。

2. Identifiers

注冊一個AppID用於唯一標識一個App或一組App,這裡的應用程序AppID和BundleID是相對應的。為了確保AppID的唯一性,它的命名必須嚴格按照規范:

1、App(主程序、插件)BundleID:

com.company.appname

com.company.appname.extensionname

2、AppGroupsID:

group.com.company.appname

3、Pass TypeID:

pass.com.company.appname

4、Website PushID:

web.com.company.appname

5、iCloud Containers ID:

cloud.com.company.appname

6、Merchant ID:

merchant.com.company.merchantname

每個AppID可以設置對應的服務開關(如APNs、Game Center、iCloud等等),生成同時按照實際需要對應配置即可。

3. 設備(Device)

這裡的設備就是指的可調試的iOS設備,可以是iPhone、iPad、iPod、Apple Watch甚至是Apple TV。新增一個設備到帳號下可以進行設備調試,僅需要提供對應名稱與UDID,但是,一個蘿卜一個坑,一個帳號最多僅支持加入100個設備,即便你後續刪除設備,用掉的名額也不會立刻恢復,直到來年開發者帳號的membership year開始時,才能選擇刪掉一些設備來恢復名額,或清空所有設備恢復到最多100個名額。

4. 描述配置文件(Provisioning Profile)

Provisioning Profile文件將上文提及的相關信息(Certificates、Identifiers、Device)都打包在內。Provision Profile本質上是一個plist文件,以development為例,它一般包含但並不只以下內容:

1、AppIDName

2、ApplicationIdentifierPrefix

3、CreationDate

4、DeveloperCertificates

5、Entitlements

6、ExpirationDate

7、ProvisionedDevice

8、UUID

系統根據配置文件提供的信息進行一一校驗,從AppID到Entitenments,從數字證書到設備UDID等,最後運行應用程序到設備。如下所示:

此外,DistributionProvisioningProfile與Development Provisioning Profile類似,它沒有Device配置信息。

5. iOS證書管理

開發團隊的人員越多,合理的證書管理愈顯重要。流程上,為保證日常開發應用程序的安全與效率,無論是大到公司的發布證書抑或是小到項目組的團隊個人開發證書,我們都盡量做到:

1、帳號密碼統一由一個關鍵接口人維護(證書管理員);

2、開發人員統一到證書管理員領取.p12文件與Provision Profile文件進行應用開發或發布;

3、新增設備,提供設備名與UDID到證書管理員添加。證書管理員更新後,周知並同步新的ProvisioningProfile到團隊開發人員。

補充提醒:

1、.p12文件與Provisioning Profile文件同步到svn,可高效並及時同步整個團隊;

2、嚴格控制iOS調試設備的加入,確保隨時有可用名額。


原文鏈接:https://www.qcloud.com/community/article/628343

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved