iOS打包詳解

xiangzhihong發表於2019-01-20

背景

今天使用Xcode打包上傳ipa時遇到一個問題: Missing private key,如下圖。通過查詢是.cer 證書失效的問題,需要重新生成新的證書。

在這裡插入圖片描述
蘋果規定 .cer證書只能存在於一臺機器上,因此 如果另一臺電腦想要用的話,需要匯出為.p12 file ,安裝到另一臺沒有安裝.cer檔案的mac電腦。

首先,給大家普及下基本知識,iOS有兩種證書和描述檔案:

證書型別 使用場景
開發(Development)證書和描述檔案 用於開發測試
釋出(Distribution)證書和描述檔案 用於提交Appstore,可使用Application Loader提交到Appstore稽核釋出
# iOS證書(.p12)

登入iOS Dev Center

開啟網站iOS Dev Center,使用蘋果開發者賬號登入iOS Dev Center。

在這裡插入圖片描述
登入成功後,開啟“iOS Certificates”頁面,可以看到所有已經申請的證書及描述檔案。
在這裡插入圖片描述

申請蘋果App ID

在“iOS Certificates”頁面“Identifiers"下選擇“App IDs",可檢視到已申請的所有App ID,點選右上角的加號可建立新的“App ID”。

在這裡插入圖片描述
在“App Services”欄下選擇應用要使用到的服務(如需要使用到訊息推送功能,則選擇“Push Notifications”)。例如:
在這裡插入圖片描述
設定完成後選擇“Continue”,彈出確認頁面,確認後選擇“Submit”提交,再次確認就可以在“App IDs"頁面看到剛建立的App ID。

生成證書請求檔案

對於iOS開發來說,不管是申請開發(Development)證書還是釋出(Distribution)證書,都需要使用證書請求(.certSigningRequest)檔案,證書請求檔案需在Mac OS上使用“Keychain Access”工具生成。 在“Spltlight Search”中搜尋“Keychain”並開啟“Keychain Access”工具:

在這裡插入圖片描述
開啟選單“Keychain Access”->“Certificate Assistant”,選擇“Request a Certificate From a Certificate Authority...”。
在這裡插入圖片描述
開啟建立請求證書頁面,在頁面中輸入使用者郵件地址(User Email Address)、證書名稱(Common Name、請求型別(Request is),最後選擇儲存到磁碟(Saved to disk)。
在這裡插入圖片描述
點選“Save”後儲存證書請求檔案。
在這裡插入圖片描述

申請開發(Development)證書

開發(Development)證書用於測試環境下使用,可以直接安裝到手機上(不用提交到Appstore),但一個描述檔案最多隻能繫結100臺裝置(因此通過這種證書正式釋出應用是行不通的)。

申請開發證書

在“Certificates, Identifiers & Profiles”頁面“Certificates"下選擇“Development",可檢視到已申請的所有開發(Development)證書,點選右上角的加號可建立新的證書。

在這裡插入圖片描述
開啟“Add iOS Certificate”頁面,在“Development”欄下選中“iOS App Development”。
在這裡插入圖片描述
開啟證書生成頁面,點選“Choose File...”選擇“生成證書請求檔案”章節生成的“CertificateSigningRequest.certSigningRequest”檔案,點選“Generate”生成cer證書成功。
在這裡插入圖片描述

生成證書成功後開啟證書下載頁面,選擇“Download”下載儲存證書(ios_development.cer)。

在這裡插入圖片描述
雙擊儲存到本地的ios_development.cer檔案匯入到“Keychain Access”,匯入成功後,可以在證書列表中顯示。
在這裡插入圖片描述
選中匯入的證書,右鍵選擇“Export "Developer" ...”:
在這裡插入圖片描述
開啟證書儲存頁面,輸入檔名、選擇路徑後點選“Save”,然後開啟設定證書密碼頁面,輸入密碼及確認密碼後點選“OK”。
在這裡插入圖片描述
開啟訪問“Keychain Access”密碼頁面,輸入Mac OS管理員密碼,點選“Allow”,即可儲存開發(Development)證書(如“HBuilderCert.p12”)。

新增除錯裝置

開發描述檔案必須繫結裝置,所以在申請開發描述檔案之前,先新增除錯的裝置。具體來說,在“Certificates, Identifiers & Profiles”頁面“Devices”下選擇“All",可檢視到已新增的所有裝置資訊,點選右上角的加號可新增新裝置。

在這裡插入圖片描述
開啟“Registering a New Device or Multiple Devices”頁面,輸入裝置名稱和UDID。
在這裡插入圖片描述
在這裡插入圖片描述
將裝置連線到電腦,啟動iTunes,點選次區域可切換顯示裝置的UDID,右鍵選擇複製UUID。
在這裡插入圖片描述
輸入完成後,點選“Continue”繼續,確認輸入資訊,如果沒有錯誤點選“Register”即可完成新增。
在這裡插入圖片描述

申請開發(Development)描述檔案

在“Certificates, Identifiers & Profiles”頁面“Provisioning Profiles”下選擇“Development",可檢視到已申請的所有開發(Development)描述檔案,點選右上角的加號可建立新描述檔案。

在這裡插入圖片描述
開啟“Add iOS Provisioning Profile”頁面,在“Development”欄下選中“iOS App Development”。
在這裡插入圖片描述

點選“Continue”按鈕,開啟“App ID”選擇頁面,選擇要使用的“App ID”,點選“Continue”。

在這裡插入圖片描述
開啟“Select certificates”頁面,選擇前面建立的開發證書。
在這裡插入圖片描述
點選“Continue”,開啟選擇除錯裝置頁面,選擇用於除錯安裝的裝置(最多100太裝置)。
在這裡插入圖片描述
點選“Generage”,生成描述檔案成功,然後下載描述檔案即可。
在這裡插入圖片描述

申請釋出證書

釋出(Production)證書用於正式釋出環境下使用,用於提交到Appstore稽核釋出,申請的過程和申請開發(Development)證書類似。

申請釋出(Production)證書

在“Certificates, Identifiers & Profiles”頁面“Certificates"Production",可檢視到已申請的所有釋出(Production)證書,點選右上角的加號可建立新證書。

在這裡插入圖片描述
開啟“Add iOS Certificate”頁面,在“Production”欄下選中“App Store and Ad Hoc”。
在這裡插入圖片描述
開啟確認證書請求頁面,點選“Continue”繼續。
在這裡插入圖片描述
生成證書成功後開啟證書下載頁面,選擇“Download”下載儲存證書(ios_production.cer)。
在這裡插入圖片描述
雙擊儲存到本地的ios_production.cer檔案匯入到“Keychain Access”。匯入成功後,可以在證書列表中顯示。
在這裡插入圖片描述
選中匯入的證書,右鍵選擇“Export "Developer" ...”。
在這裡插入圖片描述
同樣,開啟證書儲存頁面,輸入檔名、選擇路徑後點選“Save”。開啟訪問“Keychain Access”密碼頁面,輸入Mac OS管理員密碼,點選“Allow”,儲存開發(Production)證書(如“HBuilderCert.p12”)。
在這裡插入圖片描述

申請釋出(Distribution)描述檔案

在“Certificates, Identifiers & Profiles”頁面“Provisioning Profiles”下選擇“Distribution",可檢視到已申請的所有釋出(Distribution)描述檔案,點選右上角的加號可建立新描述檔案。

在這裡插入圖片描述
開啟“Add iOS Provisioning Profile”頁面,在“Development”欄下選中“iOS App Development”。
在這裡插入圖片描述
點選“Continue”按鈕,開啟“App ID”選擇頁面,選擇要使用的“App ID”,點選“Continue”。
在這裡插入圖片描述
開啟“Select certificates”頁面,選擇前面建立的釋出證書。
在這裡插入圖片描述
點選“Generage”,生成描述檔案成功。
在這裡插入圖片描述
然後,下載描述檔案點選安裝即可。

相關文章