iOS開發-Certificates、Identifiers和Profiles詳解


如果是才進入公司進行開發的iOS程序猿來說人難免會對蘋果的證書、配置文件,尤其有的需要重頭開始的公司來說,最簡單的來說真機調試是免不了和這些東西打交道的,有的時候趕時間做完了可能心里也犯嘀咕,本文根據個人經驗對Certificates、Identifiers和Profiles做下簡單的介紹,不過默認你已有蘋果賬號,如果你還在學習的路上,將來有一天你也會有的,開始正題吧:

1.登錄蘋果官網,蘋果在WWDC15之后對網站進行了改版,以下是最新的截圖:

2.三合一的管理模式:

3.管理iOS Apps,這個就是網上有的時候會看到的圖片,隱藏了賬號信息;

 

如果進入了這里就到了文章的重點,接下來就解釋這些選項的作用(本文鏈接:http://www.cnblogs.com/xiaofeixiang,iOS技術交流群:228407086)

Certificates(證書)

證書主要分Development和Production兩類,Development證書用來開發和調試應用程序,Production主要用來分發應用程序,不同的種類的證書功能不一樣:

Development:

  • App Development (1年):用來開發和真機調試應用程序。
  •  Push Development (1年):用來調試Apple Push Notification

Production:

App Store and Ad Hoc (3年):發布App Store和AdHoc的應用程序; 

Apple Push Notification service SSL (Production)(1年):在發布版本中使用Apple Push Notification;

VoIP Services Certificate

Pass Type ID Certificate

Website Push ID Certificate

標注過的證書都用過,未標注本人沒有使用過,不敢誤人子弟。在Xcode的Code Signing中,可以設置用於為代碼簽名的證書。 

小貼士:

我們申請一個Certificate之前,需要先申請一個Certificate Signing Request (CSR) 文件,如圖所示:

這個過程中實際上是生成了一對公鑰和私鑰,保存在自己的Mac的Keychain中。代碼簽名正是使用這種基於非對稱秘鑰的加密方式,用私鑰進行簽名,用公鑰進行驗證。圖片來源網上,原理大同小異,在自己Mac的keychain的login中存儲着相關的公鑰和私鑰,而證書中包含了公鑰。你只能用私鑰來進行簽名,所以如果沒有了私鑰,證書也就沒有意義。因此在申請完證書時,最好導出並保存好你的私鑰。當你的團隊有新成員或其他設備需要共享證書時,用同一私鑰就可以。私鑰保存在自己的Mac中,而蘋果生成的Certificate中包含了公鑰。當用自己的私鑰對代碼簽名后,蘋果就可以用證書中的公鑰來進行驗證,確保是本人對代碼進行了簽名,而不是被冒充,確保代碼的完整性。 

Identifiers(標識)

Identifiers分為六種,App IDs,Pass Type IDs,Website Push IDs,iCloud Containers,App Groups和Merchant IDs,其中App IDs是最常用的,其他的五種沒有使用過,重點說下App IDs,App IDs用於標識一個或者一組App,App ID應該是和Xcode中的Bundle ID是一致的或者匹配的。App IDs主要有以下兩種: 

 

  • Explicit App ID:唯一的App ID,這種App ID用於唯一標識一個應用程序,例如com.cnblogs.xiaofeixiang,標識Bundle ID為com.cnblogs.xiaofeixiang的程序。
  • Wildcard App ID:通配符App ID,用於標識一組應用程序。例如*可以表示所有應用程序,而com.cnblogs.*可以表示以com.cnblogs開頭的所有應用程序。

每創建一個App ID,我們都可以設置該App ID所使用的APP Services,也就是其所使用的額外服務,如下圖所示可以進行勾選:

 

Devices(設備)

隨着蘋果帝國的發展,現在設備類型分為Apple TV,Apple  Watch,iPad,iPhone和iPod Touch五類。Devices中包含了該賬戶中所有可用於開發和測試的設備。 每台設備使用UDID來唯一標識。每個賬戶中的設備數量限制是100個。Disable 一台設備也不會增加名額,只能過了一年之后才能刪除,所以如果機器比較多慎用。

Profiles (配置文件)

配置文件,分為兩種,一種是Development,另外一種是Distribution,如下圖:

Provisioning Profile文件包含了上述的所有內容:證書、App ID、設備,我們先思考兩秒,如果沒有配置文件我們如何在真機上運行一個應用程序:

①通過證書來進行簽名,用來標識這個應用程序是合法的、安全的、完整的。。

②指明它的App ID,並且驗證Bundle ID是否與其一致;

③如果是真機調試,需要確認這台設備能否用來運行程序;

Provisioning Profile就把這些信息全部打包在一起,方便我們在調試和發布程序打包時使用,這樣我們只要在不同的情況下選擇不同的profile文件,而且這個Provisioning Profile文件會在打包時嵌入.ipa的包里。團隊的Provisioning Profile中包含了該Provisioning Profile對應的App ID,可使用的證書和設備,通過Provisioning Profile打包程序擁有與之相應的證書,並且是將App ID對應的程序運行到Devices中包含的設備上去。

 

蘋果官網關於配置文件的介紹:https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppStoreDistributionTutorial/RevisionHistory.html#//apple_ref/doc/uid/TP40013839-CH99-SW1,附贈iOS技術交流群:228407086~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM