iOS證書配置實踐
本文參考了:
iOS證書配置指南:http://dev.umeng.com/push/ios/license-configuration-guide
寫在前面:
團隊開發證書的管理:
- 一個開發者賬戶只能申請3個發布證書,2個開發證書(一般在我們的證書界面中應該只有一個開發證書,一個發布證書,所有App和所有開發者共用一個證書即可,沒必要生成那么多的證書,造成混亂,證書一般在過期之后才會重新添加。)
- 在團隊開發的時候,最好是一個人去管理證書,當有其他人要用的時候,可直接導出.p12證書供其他開發者使用。證書出了問題,我感覺還是相當麻煩的,
- 而App ID在添加之后,基本上是不會改變的,除非要為App添加新的服務,這時候才要重新編輯App ID,所以App ID最好也是管理證書的人去管理App ID。
- 添加設備這一塊就很隨意了,所有的開發者都應該有權去管理添加設備這一塊。
- 描述文件的制作這個要區分一下是開發類型的描述文件,還是發布類型的描述文件。開發類型的描述文件應該是團隊里的每一個開發者都有權去管理的,實際上當開發類型的描述文件出現問題的時候,開發者可以對此描述文件重新編輯一下進行使用,這樣是不會影響其他開發者的,甚至你可以自己重新制作一個描述文件也沒什么問題。但是發布類型的描述文件,這個最好還是管理證書的那個人去管理這個描述文件。打包發布的時候如果這個描述文件出現變化,還是很麻煩的,而且這個描述文件對于團隊其他開發者來說也不是很常用,甚至是根本用不到這個描述文件。
總結:
App ID: 每一個應用的獨立標識 |
證書:
證書: | 命名 | 特點 | 團隊管理 |
---|---|---|---|
開發證書 | iOS Development | 不與App ID對應 表示擁有開發應用的資格 | 一般只需一個,通過導出p12文件,分發給其他電腦安裝; |
生產證書 | iOS Distribution | 不與App ID對應 表示擁有發布應用的資格 | 一般只需一個,可以通過導出p12文件,分發給其他電腦;但最好leader一個人管理; |
推送開發證書 | APNs Development iOS | 與App ID對應 | 與需要推送功能的App ID個數相同,可以通過導出p12文件,分發給其他電腦; |
推送生產證書 | Apple Push Services | 與App ID對應 | 與需要推送功能的App ID個數相同,可以通過導出p12文件,分發給其他電腦;但最好leader一個人管理; |
描述文件Provisioning Profiles:
描述文件 | 命名 | 特點 | 團隊管理 |
---|---|---|---|
開發描述文件 | iOS Development | 對應App ID & iOS Development證書 & 設備;用于開發人員真機調試 | 每個開發者可以自己去生成和安裝 |
Ad Hoc描述文件 | iOS Distribution | 對應App ID & iOS Distribution證書 & 設備;用于打包ipa包給測試團隊 | 每個開發者可以自己去生成和安裝;但最好leader一個人管理; |
發布描述文件 | APNs Development iOS | 對應App ID & iOS Distribution證書 (不限制設備);用于發布App到App Store | 每個開發者可以自己去生成和安裝;但最好leader一個人管理; |
①創建App ID
登錄Apple Member Center :https://developer.apple.com/membercenter,選擇**certificates,identifiers&profiles **選項,如下圖所示:
選擇identity
中的APP IDs
,如下圖所示:
注意:創建
Explicit App ID
時,要注意此時設置的Bundle ID要與APP以后的Bundle ID一致,如下圖所示:
選擇**Push Notification **來開通Push功能,如下圖所示:
點擊下方的**register 按鈕,幾秒鐘之后下方會變成一個Done **,表示APP ID已經創建完成,如下圖所示:
注意:
創建的APP ID要與自己項目的Bundle ID保持一致。如果已經有APP ID,請確保自己的APP ID已經開通了Push功能,如果沒有開通,可以點擊APP ID,在其底部有一個Edit按鈕,點擊后選中Push服務并創建,如下圖所示:
至此,APP ID創建完畢。
②創建開發證書和發布證書
CSR文件
CSR是Cerificate Signing Request的英文縮寫,即證書請求文件。證書申請者在申請數字證書時由CSP(加密服務提供者)在生成私鑰的同時也生成證書請求文件。證書申請者只要把CSR文件提交給證書頒發機構后,證書頒發機構使用其根證書私鑰簽名就生成了證書公鑰文件,也就是頒發給用戶的證書。
在電腦中找到鑰匙串----->鑰匙串訪問------>證書管理------>從證書頒發機構請求證書,如下圖所示:
設置完證書信息后,點擊“繼續”,然后選擇存儲位置,點擊存儲,至此,CSR文件創建成功。
開發證書
選擇Development(發布證書,需要選擇Distribution),如下圖所示:
之后,你將看到如下四個證書。這一步,我們選擇iOS App Development證書,如下圖所示:
在choose file...中選擇本地的CertificateSigningRequest(CSR)文件,然后點擊繼續,如下圖所示:
點擊Download,將證書下載到本地,雙擊下載安裝。
導出證書的p12文件:
==如果是團隊合作,可以將證書導出.p12文件,供其他開發者在各自電腦上安裝。==
注意:此步驟所設置的密碼將在之后會用到,且密碼只能包含大小寫(a-z,A-Z ),數字(0-9),特殊字符(.-_),其他元素將會被過濾。
至此,P12證書導出完畢。
將.p12文件收到后,雙擊該文件,會出現使用文件的密碼輸入框,輸入該.p12文件的使用密碼(就是生成的時候設的,不知道就問給你該文件的人),不是本機設備密碼。這是配置該文件在本地。然后將開發者賬號對應的開發證書和發布證書都可以download使用了。
發布證書
在iOS Certificates下選擇All,如下圖所示:
在Production下選擇App Store and Ad Hoc,如下圖所示:
點擊choose file選擇CSR文件,如下圖所示:
生成證書并點擊Download,將證書下載到本地,雙擊下載安裝。
==如果是團隊合作,可以將證書導出.p12文件,供其他開發者在各自電腦上安裝。==
③添加測試設備
測試推送需要添加測試設備,添加方法如下所示:
PS:Xcode8 開始, 會將在真機運行時設備自動加入測試設備。
④創建Provisioning Profiles文件
- iOS App Development 開發描述文件 用于開發人員真機調試 限制設備
- App Store 發布描述文件 用于發布App到App Store 不限制設備
- Ad Hoc 測試描述文件 用于打包給測試團隊 限制設備
開發Provisioning Profiles
選擇Development,創建開發環境的Provisioning Profiles(如果是發布上線,需要選擇Distribution),如下圖所示:
創建新的Provisioning Profiles,并選擇之前生成好的App ID。如下圖所示:
選中創建的證書:開發證書
選中測試設備:
把創建的Provisioning Profiles下載下來(文件名:umengpushtestdemo.mobileprovision)以后雙擊安裝。
測試(Ad Hoc):Provisioning Profiles
在Provisioning Profile下選擇All,如下圖所示:
在Distribution下選擇Ad Hoc,如下圖所示:

在Select App ID下選擇Ad Hoc,如下圖所示:
選擇證書,如下圖所示:
選擇指定設備,如下圖所示:
給profile文件起名,如圖中起名為Distribution-Ad-Hoc:
把創建的Provisioning Profiles(文件名:Distribution-Ad-Hoc)以后雙擊證書。
發布Provisioning Profiles
在Distribution下選擇App Store,如下圖所示:

==不同時開發和Ad Hoc描述需要選擇設備,App Store描述不需要選擇設備。==
5.創建推送證書
一般App都具有推送功能,推送證書是必須的。推送證書分為開發環境和生產環境:
- 開發推送證書
- 發布推送證書
開發推送證書
選擇Apple Push Notification service SSL(Sandbox)
選中APP ID后,點擊continue,直到上傳CRS文件,如下圖所示:
推送證書是對應APP ID的。這與開發證書是有區別的。
點擊Download,將證書下載到本地后,雙擊下載的開發環境推送證書(文件名為:aps_development.cer,可以自己更改命名),就可以在鑰匙串訪問中的我的證書中找到。
==如果是團隊合作,可以將證書導出.p12文件,供其他開發者在各自電腦上安裝。==
發布推送證書
推送證書分為開發環境和生產環境,如果需要生成生產環境的推送證書請選擇: Apple Push Notification service SSL (Sandbox&Production),如下圖所示:
==如果是團隊合作,可以將證書導出.p12文件,供其他開發者在各自電腦上安裝。==
參考:
iOS證書配置指南:http://dev.umeng.com/push/ios/license-configuration-guide