1 .iOS開發證書,描述文件,bundle ID的關系
蘋果為了控制應用的開發與發布流程,制定了一套非常復雜的機制。這里面的關鍵詞有:個人開發者賬號,企業開發者賬號,bundle ID,開發證書,發布證書(又叫“生產證書”),開發描述文件,發布描述文件,推送證書等...。初級開發者很難理解這中間的關系和作用。下文就對上述列出的關鍵內容和它們的關系做個詳細介紹。
-
開發者賬號
開發者賬號其實就是apple id,只不過要成為開發者,需要去蘋果開發者中心激活開發權限。激活開發者賬號分為三種,個人,公司和企業。這三種賬號各自有些區別,下表是他們主要區別的對比:
賬號類型 | 支持applestroe上架 | 測試設備數量 | 申請費用 | 申請需要 |
---|---|---|---|---|
個人 | 是 | 100 | 99$ | - |
公司 | 是 | 100 | 99$ | 鄧氏碼 |
企業 | 否 | 不限 | 299$ | 鄧氏碼 |
所以如果應用需要上appstroe,就要創建個人或者公司類型的賬號;
如果只想內部發布,就可以申請企業賬號;
個人賬號和公司賬號的區別就是公司賬號能邀請多個賬號,他們可以和你共享資源協同開發此應用,而不需要總是問你要你的賬號使用。
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的應用不能使用通知功能,所以并不常用。iOS Certificates(證書)
ios certificates就是證書。它的作用就是證明你的mac具有開發或發布某個開發者賬號下應用的權限。而且證書還分成兩種,一種是開發證書(Development certificate)
; 另一種是發布證書或叫生產證書(Production certificate)
。
1 .development certificate
開發證書是證明你的mac具有開發和真機調試你的程序的東西。但是每個證書關聯著一個開發者賬號,也就是說,你只能使用這個證書開發這個賬號底下的應用,它是通過bundle id來知道該應用是不是屬于自己的賬號。所以每次為一個開發者帳號開發應用,就得需要這個賬號創建的開發證書。
2 .Production certificate
生產證書是證明你的mac是否具有發布應用的權限。在archive到appstore的時候,必須有生產證書,否則時上傳不成功的。
3.根證書
無論是開發證書還是生產證書,都必須從根證書上派生。根證書就是根mac產生的證書,menber center上保存的那個證書就是根證書,它只能安裝在創建它的那臺mac上,其他的開發mac必須從那臺根mac上導出證書使用。也就是所有的子證書都只能從根證書派生而來。iOS Provisioning Profiles(描述文件)
描述文件它用來標識某個設備是否具有安裝某個應用的權限。描述文件分為開發描述文件
和發布描述文件
。其中發布描述文件又分為臨時發布描述文件和正式發布描述文件。
1 . 開發描述文件(develop provisioning profile)
開發描述文件,創建它需要bundle ID + 開發證書 + 測試設備(在devices中添加); 編譯的時候必須三者對應,否則編譯器會報錯。
2 . 臨時發布描述文件(distribution ad hoc)
臨時發布描述文件是用來在有限設備上發布的。創建它需要bundle ID +發布證書+發布設備,編譯時也必須三者對應。
3 . 正式發布描述文件(distribution appstore/distribution ad house)
個人賬號和企業賬號
創建的正式發布描述文件是不同的。因為個人賬號
是在appstrore上發布,所以創建的是distribution appstore
描述文件,而企業賬號
只能內部發布,所以創建的叫distribution ad house
描述文件。但是它們創建所需要的東西都是一樣的:bundle ID + 發布證書
。因為他們是在不確定的設備上安裝的,所以不需要選擇設備。
2. Apple開發賬號添加團隊成員
申請了一個公司或企業級的蘋果開發者賬號,可以添加團隊成員協同開發。
團隊成員有三種角色,分別是 Agent (代理), Admin (管理),Member (成員)。
代理
: 就是注冊開發者賬號的那一個,權限最高,續費和創建開發商證書只能使用該賬號;
管理
: 管理分發證書、管理測試設備、管理應用配置等等;
成員
: 沒有管理權限,只能下載和請求數據。
關于團隊成員的詳細介紹,可見:官方文檔
去開發者中心登錄開發者賬號,可以看到開發者信息如下:
添加團隊成員:
1 . 使用代理或管理員賬號登錄開發者中心
2 . 選中People
3 . 選擇邀請人
Invite People
4 .可以邀請成為管理員或者成為開發人員,填寫對應開發者AppleID的郵箱地即可(可以填寫一個或多個),需要在30天內接受。
5 . 點擊
Invite
按鈕后,被添加人的郵箱會受到一封郵件,點擊View invitation
,然后選擇Accept
接受成為開發者。這樣就添加了一個新的開發者。
6.可以更改其他管理員成員權限或者移除其他管理員和成員
參看官方文檔
3 .開發證書,生產證書,描述文件,AppID關系及生成。
- 首先要申請證書,申請蘋果開發者賬號教程,還沒有的話申請一個或者借用、這里不再詳敘。
登錄開發者中心,如果還沒申請證書,界面如下:
沒有證書界面.png
如果有證書登錄界面如下:
已經申請過證書登錄界面.png - 有賬號后就可以正式開發上架了,具體流程如下:
1 .生成開發和發布證書
(1).通過鑰匙串獲取證書請求文件Certificate Signing Request (CSR)文件
。
選擇“鑰匙串訪問”-“證書助理”-“從證書頒發機構請求證書…”,如下圖:
image.png
填寫郵件地址和常用名稱,選擇“存儲到磁盤”,會生成一個CSR文件到本地磁盤。
image.png
生成的CSR.png
(2) . 登錄開發者中心,選擇Certificates, Indentifiers & Profiles
可以獲取開發和發布證書。
Certificates -> All -> +
image.png
選擇In-House and Ad Hoc
是發布證書,選擇iOS App Development是打包證書。下面選擇發布證書
image.png
Choose File
選擇生成的的CSR文件,點擊generate生成cer證書。
image.png
可以看見生成的開發和生產證書如下:
開發證書.png
生產證書.png
選擇Download
下載到本地,然后雙擊或拖拽到鑰匙串中安裝
下載證書.png
安裝后的開發和發布證書.png
2 . 生成App ID。
選擇Identfiers -> App IDs -> +
image.png
Name
可以隨便填,但不能是中文和特殊符號,主要起描述作用。
Bundle ID
就是App的Bundle ID完全一樣,全球唯一,一般格式是:com.domainname.appname。
注冊App ID.png
還可以選擇NFC,推送等功能,選中Continue -> Register -> Done ;就完成了App ID 的注冊。
其他服務功能.png
App ID注冊成功.png
3 . 生成描述文件Provisioning Profile
(企業版不需要device即iPhone的UDID,因此跳過)。
選擇Provisioning Profile->All -> +:
iOS App Development
是開發證書的描述文件,n House
是企業發布證書的描述文件。選擇剛剛生產的App ID,點擊Continue。
選擇剛剛生產的開發或發布證書:
填寫描述文件名稱,可以隨便填,便于自己理解就好。
可以下載描述文件雙擊安裝,也可以去項目中Xcode的偏好設置去下載安裝:
現在應用程序就可以打包上線啦!
4.證書導出p12文件
- 為什么要導出.p12文件?
當我們用大于三個mac設備開發應用時,想要申請新的證書,如果在我們的證書里,包含了3個發布證書,6個開發證書
,可以發現再也申請不了開發證書和發布證書了。(一般在我們的證書界面中應該只有一個開發證書,一個發布證書,
沒必要生成那么多的證書,證書一般在過期之后才會重新添加。)會提示超過了最大數量,并且不能選擇生產證書了。如下圖:
image.png - 不能添加證書的解決辦法。
1 .撤銷(Revoke)已經生成的證書(不建議使用),然后重新生成一個新的證書。如下圖:
撤銷證書.png
注意
:這種方法是可以的,但是會造成相應的Provisioning Profiles
失效,這是小問題。但是又要重新申請證書甚至描述文件很浪費時間,所以不提倡這種做法。
2 . 導出.p12文件
每一個證書都可以生成一個.p12文件,這個文件是一個加密的文件,只要知道其密碼,就可以供給所有的mac設備使用,使設備不需要在蘋果開發者網站重新申請開發和發布證書,就能使用。
注意
:一般.p12文件是給與別人使用的,本機必須已經有一個帶秘鑰的證書才可以生成.p12文件
打開鑰匙串->我的證書,選擇要導出的證書,右鍵選擇導出“....”
證書。如下圖:
image.png
填寫要導出證書名稱,保存的地址路徑,文件類型選擇為個人信息交換(.p12)
image.png
設置密碼:
設置密碼.png
生成的p12文件,將p12文件,密碼,和描述文件發給別人就可正常開發啦。
image.png
p12文件和描述文件.png