標籤:app id 需要 ios 不同的 develop 儲存 標識 cert hive
http://www.jianshu.com/p/21ebca8cadf6
蘋果為了控制應用的開發與發布流程,制定了一套非常複雜的機制。這裡面的關鍵詞有:個人開發人員帳號,企業開發人員帳號,bundle ID,開發認證,發布認證(又叫“生產認證”),開發描述檔案,發布描述檔案,推送認證等...。初級開發人員很難理解這中間的關係和作用。下文就對上述列出的關鍵內容和它們的關係做個詳細介紹。
1. 開發人員帳號
開發人員帳號其實就是apple id,只不過要成為開發人員,需要去蘋果開發人員中心啟用開發許可權。啟用開發人員帳號分為三種,個人,公司和企業。這三種帳號各自有些區別,下表是他們主要區別的對比:
帳號類型 |
支援applestroe上架 |
測試裝置數量 |
申請費用 |
申請需要 |
個人 |
是 |
100 |
99$ |
- |
公司 |
是 |
100 |
99$ |
鄧氏碼 |
企業 |
否 |
不限 |
299$ |
鄧氏碼 |
所以如果應用需要上appstroe,就要建立個人或者公司類型的帳號,如果只想內部版本,就可以申請企業帳號。個人帳號和公司帳號的區別就是公司帳號能邀請多個帳號,他們可以和你共用資源協同開發此應用,而不需要總是問你要你的帳號使用。
2. bundle ID
bundle ID可以翻譯成包ID,也可以叫APP ID 或應用ID,它是每一個ios應用的全球唯一標識。無論代碼怎麼改,表徵圖和應用程式名稱怎麼換,只要bundle id沒變,ios系統就認為這是同一個應用。每開發一個新應用,首先都需要到member center->identifier->APP IDS去建立一個bundle id。但是bundle id分為兩種:
- Explicit App ID(明確的APP ID),一般格式是:com.domainname.appname。這種id只能用在一個app上。每一個新應用都要建立一個。
- Wildcard App ID(萬用字元APP ID), 一般格式是:com.domainname.*。這種id可以用在多個應用上,雖然方便,但是使用這種id的應用不能使用通知功能,所以並不常用。
3. iOS Certificates
ios certificates就是認證。它的作用就是證明你的mac具有開發或發布某個開發人員帳號下應用的許可權。而且認證還分成兩種,一種是開發認證,也叫Development certificate; 另一種是發布認證或叫生產認證,英文名叫Production certificate。
- development certificate
開發認證是證明你的mac具有開發和真機調試你的程式的東西。但是每個認證關聯著一個開發人員帳號,也就是說,你只能使用這個認證開發這個帳號底下的應用,它是通過bundle id來知道該應用是不是屬於自己的帳號。所以,每次為一個開發人員帳號開發應用,就得需要這個帳號建立的開發認證。
Production certificate
生產認證是證明你的mac是否具有發布應用的許可權。在archive到appstore的時候,必須有生產認證,否則時上傳不成功的。
根憑證
無論是開發認證還是生產認證,都必須從根憑證上派生。根憑證就是根mac產生的認證,menber center上儲存的那個認證就是根憑證,它只能安裝在建立它的那台mac上,其他的開發mac必須從那台根mac上匯出認證使用。也就是所有的子認證都只能從根憑證派生而來。
4. iOS Provisioning Profiles
iOS Provisioning Profiles也叫描述檔案,它用來標識某個裝置是否具有安裝某個應用的許可權。描述檔案分為開發描述檔案和發布描述檔案。其中發布描述檔案又分為臨時發布描述檔案和正式發布描述檔案。
- 開發描述檔案(develop provisioning profile)
開發描述檔案,建立它需要bundle ID + 開發認證 + 測試裝置(在devices中添加)
; 編譯的時候必須三者對應,否則編譯器會報錯。
- 臨時發布描述檔案(distribution ad hoc)
臨時發布描述檔案是用來在有限裝置上發布的。建立它需要bundle ID +發布認證+發布裝置
,編譯時間也必須三者對應。
- 正式發布描述檔案(distribution appstore/distribution ad house)
個人帳號和企業帳號建立的正式發布描述檔案是不同的。因為個人帳號是在appstrore上發布,所以建立的是distribution appstore描述檔案,而企業帳號只能內部版本,所以建立的叫distribution ad house描述檔案。但是它們建立所需要的東西都是一樣的:bundle ID + 發布認證
。 因為他們是在不確定的裝置上安裝的,所以不需要選擇裝置。
ios開發認證,描述檔案,bundle ID的關係