文章目錄
Apple對其裝置有嚴格的使用限制,任何應用程式都必須經過iTunes Store下載安裝,要麼直接從裝置裡下載,要麼從電腦中通過iTunes下載後同步到裝置中。所以沒有經過破解的裝置是沒有辦法直接安裝IPA檔案的。但是Apple也提供了一套面向開發人員的機制,讓他們可以在指定的裝置上安裝IPA檔案來測試和開發,這個機制的核心就是開發人員授權。我前面介紹的申請流程就是申請獲得一個可以在裝置中安裝運行IPA檔案的開發人員授權。
使用開發人員授權是一套完整而且相對合理的流程,它可以分為下面幾個階段:
- 授權裝置,將開發人員授權與指定的裝置綁定在一起,使得這些裝置可以自由安裝開發人員發布的IPA。
- 產生授權檔案.mobileprovision,這個檔案會被打包進入IPA,實現裝置與授權開發帳號的綁定。
- 產生認證檔案.p12,這個檔案也會被打包進入IPA,實現應用發行商的簽名以及身分識別驗證。
除此之外,開發人員授權系統還提供了開發(Development)和發布(Distribution)兩個不同的渠道。開發測試的時候需要裝置的綁定而實現在裝置上單獨安裝IPA,發布的時候則不需要綁定裝置。所以開發與發布需要使用不同的.mobileprovision與.cer檔案。
下面我們登陸開發人員授權系統,我先來介紹一下如何在開發階段使用授權與認證。
授權裝置點擊左側導航的Device,進入授權裝置的頁面,點擊右上方的Add Device按鈕可以添加一個裝置。
添加裝置的時候可以指定裝置的名字(隨便寫),以及裝置的UID(Unique Identifier)。每一個Apple的裝置都有一個唯一的識別碼,獲得這個識別碼的方法很簡單,將你的裝置串連到電腦,然後在iTunes裡找到你的裝置資訊(如),點擊圖中紅色方框的位置,裝置UID就會顯示出來。可以直接通過Ctrl + C (蘋果是Command + C)可以把UID拷貝到剪下板。
添加App ID
點擊左側導航的App IDs按鈕可以進入應用程式ID的配置頁面,可以點擊頁面右方的New App ID按鈕添加一個新的應用。這個ID對應的是即將開發與測試的應用程式。如,在description裡添加一個單一應用的名稱(不支援特殊字元),然後在最下面的Bundle Seed ID裡面填入一個含有domain格式的字串(如com.jamesli.appname)。Bundle Seed ID是一個集合了開發商與應用程式的資訊,格式為(com.[開發商].[應用]),這裡可以指定為單一應用,也可以指定為全部應用。如果是單一應用,建議剛才填寫的description與Bundle Seed ID的最後一項相同(如angrypigs和com.jamesli.angrypigs),如果是全部應用,可以使用這樣的Bundle Seed ID: com.jamesli.
申請開發人員認證
在Applications->Utilities裏手動開啟Keychain Access。從頂部功能表列裡Keychain Access -> Certificate Assistant -> Request a Certificate from Certificate Authority. 在新彈出的視窗中填寫你的資訊後選擇Save to disk,就會在案頭儲存一個CertificateSigningRequest檔案。(如)
這個過程請不要使用Chrome瀏覽器
返回開發人員授權系統的Certificate頁面裡,點擊頁面右方的Request Certificate申請一個認證,然後點擊頁面下方的按鈕上傳產生的certSigningRequest檔案,這樣就完成了認證的申請流程。申請成功後,Certificate頁面裡就有了一條認證,重新整理幾次頁面後認證的狀態就變成Issued,點擊download按鈕可以下載一個cer檔案。
使用開發人員授權
正如上面我們提到的,如果要發布一個可以在指定的裝置上單獨安裝的IPA,則必須使用開發人員授權檔案.mobileprovision。這個檔案可以從開發人員授權系統中申請獲得。
點擊左側導航的Provisioning進入授權頁面,點擊右側的New Profile按鈕建立一個新的授權檔案。
在建立頁面中填入名稱,選擇建立好的認證,以及指定裝置(可以多選),提交後就可以產生一個授權帳號。並且可以下載一個mobileprovision檔案到本地。
到現在,我們就具備了Flash發布iOS應用的兩個重要檔案,.mobileprovision和.cer。