之前工程中的Provisioning Profile文件過期,配置證書時入了不少坑,回過頭來總結下配置證書步驟和注意事項
對于iOS開發者來說,apple開發者賬號肯定不會陌生。在開發中我們離不開它。下面分享一下關于iOS開發中所用的證書相關知識。
第一部分:成員介紹
1.Certification(證書)
證書是對電腦開發資格的認證,每個開發者帳號有一套,分為兩種:
1)Developer Certification(開發證書)
安裝在電腦上提供權限:開發人員通過設備進行真機測試。
可以生成副本供多臺電腦安裝;?
2)Distribution Certification(發布證書)
安裝在電腦上提供發布iOS程序的權限:開發人員可以制做測試版和發布版的程序。不可生成副本,僅有配置該證書的電腦才可使用;
2.Provisioning Profile(授權文件)
授權文件是對設備如iPod Touch、iPad、iPhone的授權,文件內記錄的是設備的UDID和程序的App Id,即:使被授權的設備可以安裝或調試Bundle identifier與授權文件中記錄的App Id對應的程序。
開發者帳號在創建授權文件時候會選擇App Id,(開發者帳號下App Id中添加,單選)和UDID(開發者帳號下Devices中添加最多100個,多選)。
授權文件分為兩種,對應相應的證書使用:
1)Developer Provisioning Profile(開發授權文件)
在裝有開發證書或副本的電腦上使用,開發人員選擇該授權文件通過電腦將程序安裝到授權文件記錄的設備中,即可進行真機測試。
注意:確保電腦有權限真機調試,即安裝了開發證書或副本;在開發工具中程序的Bundle identifier和選中使用的授權文件的App Id要一致;連接調試的設備的UDID在選中的授權文件中有記錄。
2)Distribution Provisioning Profile(發布授權文件)
在裝有發布證書的電腦上(即配置證書的電腦,只有一臺)制做測試版和發布版的程序。
發布版就是發布到App Store上的程序文件,開發者帳號創建授權文件時選擇store選項,選擇App Id,無需選擇UDID;
測試版就是在發布之前交給測試人員可同步到設備上的程序文件,開發者帳號創建授權文件時選擇AdHoc,選擇App Id和UDID;只有選中的UDID對應的設備才可能安裝上通過該授權文件制做的程序。
3. Keychain(開發密鑰)
安裝證書成功的情況下證書下都會生成Keychain,上面提到的證書副本(導出證書重新命名)就是通過配置證書的電腦導出Keychain(就是.p12文件)安裝到其他機子上,讓其他機子得到證書對應的權限。Developer Certification就可以制做副本Keychain分發到其他電腦上安裝,使其可以進行真機測試。
注意:Distribution Certification只有配置證書的電腦才可使用,因此即使導出導出Keychain安裝到其他電腦上,其他電腦也不可能具有證書的權限。
第二部分:證書申請流程
登陸iOS Dev Center選擇進入iOS Provisioning Portal。
在iOS Provisioning Portal中,點擊App IDs進入App ID列表。
創建 App ID,如果 ID 已經存在可以直接跳過此步驟
為 App 開啟 Push Notification 功能。如果是已經創建的 App ID 也可以通過設置開啟 Push Notification 功能。
根據實際情況完善 App ID 信息并提交,注意此處需要指定具體的 Bundle ID 不要使用通配符。
配置和下載證書
如果你之前沒有創建過 Push 證書或者是要重新創建一個新的,請在證書列表下面新建。
新建證書需要注意選擇證書種類(開發證書用于開發和調試使用,生產證書用于 App Store 發布)
點擊 Continue 后選擇證書對應的應用ID,然后繼續會出現“About Creating a Certificate Signing Request (CSR)”。
根據它的說明創建打開KeychainAccess 創建 Certificate Signing Request。
填寫“User Email Address”和“Common Name” 后選擇 Saved to disk 進行保存 。
繼續返回Apple developer 網站點擊 Continue ,上傳剛剛生成的 .certSigningRequest 文件生成 APNs Push Certificate。
下載并雙擊打開證書,證書打開時會啟動“鑰匙串訪問”工具。
在“鑰匙串訪問”中你的證書會顯示在“我的證書”中,注意選擇“My Certificates” 和"login"
導出 .p12 證書文件
注意要選“login”和“My Certificates” 導出證書時要選中證書文件,不要展開private key。
將文件保存為Personal Information Exchange (.p12)格式。
將文件保存為Personal Information Exchange (.p12)格式。
上傳證書
在JPush 管理 Portal 上,針對某應用程序,上傳上面步驟得到 .p12 證書文件。這是 iOS SDK 能夠接收到 JPush 推送消息的必要步驟。
Provisioning Profile的創建
創建Provisioning Profile的前提,已在Apple Developer網站創建待發布應用所使用的Bundle ID的App ID,且為該App ID創建了APNs證書,如下圖:
創建App ID、APN證書和p12證書的導出的具體步驟請看 :iOS 證書 設置指南
在蘋果開發者賬號的Provisioning Profile頁面點擊下圖按鈕,創建Provisioning Profile
選擇此Provisioning Profile的環境后點擊[Continue]:
選擇要創建Provisioning Profile的App ID后點擊[Continue]:
選擇所屬的開發者證書,(這里創建了多個開發者證書,建議只創建一個,方便管理)為了方便,選擇了[Select All],再點擊[Continue]進入下一步:
為該Provisioning Profile選擇將要安裝的設備(一般選擇[Select All]),點擊[Continue]:
給該Provisioning Profile填寫Profile Name,點擊[generate]完成創建。
填寫完Profile Name后點擊[generate]完成創建,之后點擊[DownLoad]下載Provisioning Profile
雙擊下載下來的Provisioning Profile,添加到xcode。
XCode的證書配置教程
參照iOS SDK 集成指南集成JPush SDK 和上傳了推送用到的p12證書后在編譯運行前需要先配置一下證書,步驟如下:
打開xxx-info.plist的Bundle identifier項把上傳到JPush 控制臺的bundle id填寫進去:
點擊項目,選擇目標TARGETS后進入Build Setting 界面,搜索“Code signing”,按照下圖配置