1. 程式人生 > >iOS開發證書、bundle ID、App ID、描述檔案、p12檔案,及企業證書打包釋出詳述

iOS開發證書、bundle ID、App ID、描述檔案、p12檔案,及企業證書打包釋出詳述

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 (成員)。
代理: 就是註冊開發者賬號的那一個,許可權最高,續費和建立開發商證書只能使用該賬號;
管理: 管理分發證書、管理測試裝置、管理應用配置等等;
成員: 沒有管理許可權,只能下載和請求資料。
關於團隊成員的詳細介紹,可見:官方文件
開發者中心登入開發者賬號,可以看到開發者資訊如下:
成員結構圖.png

新增團隊成員:
1 . 使用代理或管理員賬號登入開發者中心
2 . 選中People
image.png
3 . 選擇邀請人Invite People
image.png
4 .可以邀請成為管理員或者成為開發人員,填寫對應開發者AppleID的郵箱地即可(可以填寫一個或多個),需要在30天內接受。
image.png
5 . 點選Invite按鈕後,被新增人的郵箱會受到一封郵件,點選View invitation,然後選擇Accept接受成為開發者。
image.png
image.png
這樣就添加了一個新的開發者。

6.可以更改其他管理員成員許可權或者移除其他管理員和成員
image.png
參看官方文件

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 -> +:
點選加號生產描述檔案.png
iOS App Development是開發證書的描述檔案,n House是企業釋出證書的描述檔案。
選擇要生成的描述檔案的型別.png
選擇剛剛生產的App ID,點選Continue。
image.png
選擇剛剛生產的開發或釋出證書:
選中證書.png
填寫描述檔名稱,可以隨便填,便於自己理解就好。
填寫描述檔名稱.png
可以下載描述檔案雙擊安裝,也可以去專案中Xcode的偏好設定去下載安裝:
下載安裝.png
Xcode中下載安裝描述檔案.png
現在應用程式就可以打包上線啦!

4.證書匯出p12檔案

  • 為什麼要匯出.p12檔案?
    當我們用大於三個mac裝置開發應用時,想要申請新的證書,如果在我們的證書裡,包含了3個釋出證書,2個開發證書,可以發現再也申請不了開發證書和釋出證書了。(一般在我們的證書介面中應該只有一個開發證書,一個釋出證書,沒必要生成那麼多的證書,證書一般在過期之後才會重新新增。)會提示超過了最大數量,並且不能選擇生產證書了。如下圖:
    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

5.描述檔案路徑

有時候我們會遇見證書,描述檔案衝突,沒法除錯和打包,這時候就需要清空證書和描述檔案然後重新安裝,描述檔案路徑~/Library/MobileDevice/Provisioning Profiles