不知不覺開發iOS應用已經有5年+了,近期前同事問我有沒有iOS應用上架的相關文章,其實剛接觸iOS開發的時候就寫過iOS App上線提交流程,沒有推薦他使用,因為在2018-06-07蘋果的開發者工具系統 iTunes Connect 已變更為 App Store Connect,后臺的管理頁面進行了全面升級,頁面布局發生了很大的改變。所以借著這個機會,也花些時間整理下,把近期蘋果更新內容都補上,其實有的時候幫助別人的同時也在幫助自己。言歸正傳,我們今天介紹iOS應用提交至蘋果審核的上架流程。
一、蘋果手機安裝App的5種方式
1.手機連接蘋果電腦,用Xcode開發工具直接運行,即可安裝App;
2.開發者用Ad-Hoc證書進行分發測試,目前測試分發平臺有蒲公英和fir.im;需要收集用戶手機的UDID標識,每個賬號只有100個名額進行測試;
3.使用蘋果的TestFlight邀請碼進行安裝測試,需要登錄蘋果后臺增加測試用戶的郵箱,測試用戶需要在iOS手機客戶端下載 TestFlight,然后進入應用輸入郵箱里面邀請碼進行下載測試。現在提交蘋果審核的應用也會同步一份TestFlight進行應用的灰度測試;
4.使用企業版的In-House證書發布,缺點是只允許企業內部用戶使用,不允許上線App Store,而且安裝還需要證書的授權,優點是應用迭代更新方便,不需要蘋果進行審核。但是最近蘋果對企業的證書管理越來越嚴格了,如果有敏感的問題,也會吊銷企業的開發者賬號所屬權;
5.直接導出應用的IPA文件,提交App Store進行審核,所有的蘋果手機都可以安裝應用。
今天我們主要介紹第五種類型,也是開發人員必須要掌握的。
二、應用上架的后臺準備
我們知道開發iOS應用,是需要蘋果開發者賬號來支撐的,目前蘋果開發者賬號有 Individual 和 Company/Organization 兩種類型。前者每年99美元,可以增加后臺應用管理者,無法增加開發者來管理證書;后者每年299美元,既可以增加后臺應用管理者,也可以增加開發者來管理證書。今天我們使用普通的個人開發者賬號進行描述。
首先登錄 蘋果開發者官網
點擊Account,輸入開發者賬號的用戶名和密碼,點擊確認按鈕,進行登錄,這里強調一下蘋果登錄的安全機制,現在后臺登錄需要開啟雙重認證機制,如果用其他人的開發者賬號,登錄是非常麻煩的,還要別人給你發送驗證碼,登錄成功后會提示你是否信任此瀏覽器嗎?為了下次登錄方便,我們還是點擊信任,下次只要使用用戶名和密碼就可驗證通過,不過瀏覽器的緩存時間失效后,還是需要雙重認證才能登錄。
在iOS開發和提交審核的時候要與蘋果的后臺打交道,涉及到開發證書Certificates、App ID、Devices及描述文件Profiles等相關知識,這里面有復雜的通信原理,涉及到非對稱加密、雙方的公鑰私鑰、摘要算法及數字簽名等內容,這里不詳細說明。
開發證書(Certificates)
iOS 證書分為兩類:Development 和 Production(Distribution)。每個證書都有時間限制,一般一年就過期。
iOS App Development 在開發階段進行真機測試時需要用到的證書。
iOS App Distribution 可以用于進行 Ad-Hoc 測試、打包上傳到 App Store 或者打包成 Enterprisee(In-House) 類型供企業內部使用。
那么我們如何申請證書呢,首先點擊證書、標識及描述文件連接
然后我們點擊下圖的添加按鈕,創建一個證書
點擊Continue
這里需要一個申請證書,格式為.certSigningRequest 里面包含公鑰和私鑰及摘要算法等相關內容。
點擊mac OS的鑰匙串訪問里的 證書助理 -> 從證書頒發機構請求證書,最后會創建出一個.certSigningRequest文件,保存到磁盤文件中,后面會用到。
輸入電子郵件,選擇存儲到磁盤,點擊繼續,導出保存在磁盤的指定位置。
點擊continue,
開發者證書就創建完成了,把它下載到本地,進行雙擊操作安裝,結果會在鑰匙串中顯示,這里多介紹一句,這個證書創建只能歸一個人擁有,如果你的團隊伙伴也想用這個證書怎么辦,畢竟一個開發者賬號創建的證書是有限的,你需要將安裝的證書導出p12文件,然后設置密碼,分發給其他伙伴,他們輸入密碼后就可以正常使用了。
至此開發的證書就創建完畢,發布的證書也等同一樣,區別是就在選擇證書的時候選擇發布就可以了。
App ID
我們知道開發iOS的App,需要一個App的唯一標識Bundle ID,而App ID由 TeamID 和 Bundle ID 組合,表明這個App是獨一無二的,現在我們需要手動的創建一個App ID,點擊增加按鈕
這里重點說兩個內容
1.設置Bundle ID? 內容通常以反域名(reverse-domain-name)格式的 Company Identifier(Company ID)作為前綴? 例如:com.baidu.map 地圖App。
它目前有兩種類型
Explicit App ID:唯一的 App ID,用于唯一標識一個應用程序。
Wildcard App ID:含有通配符的 App ID,用于標識一組應用程序。
2.Capabilities: App ID的權限設置? 向組應用,開啟后臺服務,消息推送,內購.....配置好App所需要的權限后點擊Continue-->Register 即可完成App ID的創建。
Devices
Devices 就是運行 iOS 系統用于開發調試 App 的設備。每臺 Apple 設備使用 UDID (Unique Device Identifier)來唯一標識。
iOS 設備連接 Mac 后,可通過 iTunes->Summary 或者 Xcode->Window->Devices 查看其 UDID。
Apple Member Center 網站個人賬號下的 Devices 中包含了注冊過的所有可用于開發和測試的設備,普通個人開發賬號每年累計最多只能注冊100個設備。
點擊增加按鈕,增加用戶設備的UDID,方便用戶后期進行測試
輸入設備的標識,這里要詳情記錄用戶的別名,方便后期管理和維護,畢竟名額只有100個。輸入完設備名稱和UDID ,點擊Continue,即增加完成。
描述文件(Provisioning Profiles)
Provisioning Profile 文件包含了上述的所有內容:Certificates、App ID 和 Devices。
申請Development描述文件
點擊增加創建,創建開發的描述文件
選擇iOS App Decelopment描述文件,點擊Continue
選擇剛剛創建的App ID,繼續點擊Continue
選擇剛剛創建的Certificates,如果想下載開發的描述文件就選擇開發證書,如果是發布的描述文件,就選擇發布即可,繼續點擊Continue,選擇設備ID信息
選擇Select All,包含所以設備信息,點擊Continue
輸入描述文件名稱,一般格式為dev+App ID+時間命名即可,方便后期管理文件,文件的有效期為一年,過期后再次創建即可,繼續點擊General。
點擊Download,下載雙擊安裝即可。
下面我們介紹一下應用如何上傳至App Store。
三、App Store Connect管理App的信息
一般先登錄開發者后臺,選擇App Store Connect,去用戶管理和訪問的頁面
選擇用戶和訪問,再選擇我的App,進入我的App管理頁面
新建一個后臺的App的描述配置,點擊新建 App
SKU Number:Stock Keeping Unit,貨號。如果你有很多應用,給每一個應用指定一個唯一的貨號會方便你管理應用庫。你可以用數字或者字母隨便指定你的貨號。
SKU:一個獨特的、不會在 App Store 中顯示的 App ID。自己可以自己定義。有人認為SKU主要去區分自己賬戶下邊不同的APP。
不過還是建議使用項目中的Xcode中的 Bundle Identifier。
輸入平臺、App的主要語言、套件ID就是應用的Bundle ID、SKU、用戶訪問權限控制,點擊創建即可。
查看App的相關信息,可以編輯后臺管理的App名稱
點擊iOS App導航的欄目,上傳應用的截圖,方便在App Store中查看。
輸入宣傳文本,介紹App在當前版本更新的內容是什么,描述是介紹App是干什么的,有什么用途,關鍵詞是便于用戶能搜索到。
這里最重要的就是構建版本,就是你開發的應用,用Xcode導出的IPA文件,最終要提交到App Store中,在構建版本中出現+號后,即有可構建的版本,那么你的應用上架流程就快接近尾聲了。
四、如何構建iOS應用的IPA文件
如何將打包好的IPA文件提交至App Store中審核,這里需要一個重要的蘋果開發工具,Xcode,假設你現在已經有開發完成的App項目,本地的Bundle ID配置也是對的,工具欄中我們選擇Generic iOS Device,這里我們就不需要連接真機進行構建了。然后點擊Product,選擇Archive開始構建發布版本。
構建成功后,會彈出如下窗口:選擇剛剛構建成功的應用,選擇Distribute App按鈕
選擇iOS App Store,點擊Next
選擇Export導出,繼續點擊Next
下面有兩種簽名,一個是自動簽名,另一個是手動簽名,本地只要有證書,就可以選擇自動簽名,系統工具會幫你創建描述文件進行簽名,如果是手動簽名,需要本地有證書和描述文件,需要手動選擇即可。
選擇對應的證書和描述文件,點擊Next
描述了相關的信息,點擊Export,即可導出對應App的IPA文件到指定的目錄。
至此iOS的App的IPA文件我們就導出來了,是經過簽名的,那么我們如何將應用文件提交至蘋果審核呢?其實需要使用Xcode自帶Applocation Loader工具。
五、Applocation Loader提交IPA文件至App Store審核
需要手動的輸入開發者賬號的用戶名和密碼,這里強調一個事情,即使你的賬號和密碼輸入正確,蘋果還讓你用簽名的密碼去登錄,那密碼怎么簽名呢,下面慢慢介紹。
需要我們到Apple ID的官網登錄,使用Apple ID和密碼進行登錄,而且還要雙重認證,這個安全驗證也是最近蘋果才更新的,感覺確實麻煩。
登錄成功后,查看安全,點擊App 專用密碼的生成密碼,將生成的密碼復制到Applocation Loader的登錄頁面進行登錄即可。
選擇剛剛導出的IPA文件進行上傳,后面點擊下一步,至最后提交到App Store中即可。
提交成功后,一般要等10分鐘左右,蘋果機器檢查完后,結果會用郵件進行通知,如果成功了,你就可以去開發者后臺管理頁面,上傳構建成功的版本,點擊發布就行了。到這里整個的上線App的上架流程就介紹完了,其實內容還是比較多的。
最后我們在總結回顧一下核心內容
1.蘋果手機安裝App的五種方式;
2.介紹證書、App ID、Devices及Profiles的相關內容;
3.App Store Connect后臺管理App的信息;
4.將iOS應用導出IAP文件;
5.將應用的IPA文件提交到App Store中進行審核。
如果大家有什么問題也可留言,我會抽時間與你們一起討論,大家相互學習。