iOS證書配置實踐
本文參考了:
iOS證書配置指南:http://dev.umeng.com/push/ios/license-configuration-guide
寫在前面:
團隊開發(fā)證書的管理:
- 一個開發(fā)者賬戶只能申請3個發(fā)布證書,2個開發(fā)證書(一般在我們的證書界面中應該只有一個開發(fā)證書,一個發(fā)布證書,所有App和所有開發(fā)者共用一個證書即可,沒必要生成那么多的證書,造成混亂,證書一般在過期之后才會重新添加。)
- 在團隊開發(fā)的時候,最好是一個人去管理證書,當有其他人要用的時候,可直接導出.p12證書供其他開發(fā)者使用。證書出了問題,我感覺還是相當麻煩的,
- 而App ID在添加之后,基本上是不會改變的,除非要為App添加新的服務,這時候才要重新編輯App ID,所以App ID最好也是管理證書的人去管理App ID。
- 添加設備這一塊就很隨意了,所有的開發(fā)者都應該有權去管理添加設備這一塊。
- 描述文件的制作這個要區(qū)分一下是開發(fā)類型的描述文件,還是發(fā)布類型的描述文件。開發(fā)類型的描述文件應該是團隊里的每一個開發(fā)者都有權去管理的,實際上當開發(fā)類型的描述文件出現(xiàn)問題的時候,開發(fā)者可以對此描述文件重新編輯一下進行使用,這樣是不會影響其他開發(fā)者的,甚至你可以自己重新制作一個描述文件也沒什么問題。但是發(fā)布類型的描述文件,這個最好還是管理證書的那個人去管理這個描述文件。打包發(fā)布的時候如果這個描述文件出現(xiàn)變化,還是很麻煩的,而且這個描述文件對于團隊其他開發(fā)者來說也不是很常用,甚至是根本用不到這個描述文件。
總結:
App ID: 每一個應用的獨立標識 |
證書:
| 證書: | 命名 | 特點 | 團隊管理 |
|---|---|---|---|
| 開發(fā)證書 | iOS Development | 不與App ID對應 表示擁有開發(fā)應用的資格 | 一般只需一個,通過導出p12文件,分發(fā)給其他電腦安裝; |
| 生產(chǎn)證書 | iOS Distribution | 不與App ID對應 表示擁有發(fā)布應用的資格 | 一般只需一個,可以通過導出p12文件,分發(fā)給其他電腦;但最好leader一個人管理; |
| 推送開發(fā)證書 | APNs Development iOS | 與App ID對應 | 與需要推送功能的App ID個數(shù)相同,可以通過導出p12文件,分發(fā)給其他電腦; |
| 推送生產(chǎn)證書 | Apple Push Services | 與App ID對應 | 與需要推送功能的App ID個數(shù)相同,可以通過導出p12文件,分發(fā)給其他電腦;但最好leader一個人管理; |
描述文件Provisioning Profiles:
| 描述文件 | 命名 | 特點 | 團隊管理 |
|---|---|---|---|
| 開發(fā)描述文件 | iOS Development | 對應App ID & iOS Development證書 & 設備;用于開發(fā)人員真機調試 | 每個開發(fā)者可以自己去生成和安裝 |
| Ad Hoc描述文件 | iOS Distribution | 對應App ID & iOS Distribution證書 & 設備;用于打包ipa包給測試團隊 | 每個開發(fā)者可以自己去生成和安裝;但最好leader一個人管理; |
| 發(fā)布描述文件 | APNs Development iOS | 對應App ID & iOS Distribution證書 (不限制設備);用于發(fā)布App到App Store | 每個開發(fā)者可以自己去生成和安裝;但最好leader一個人管理; |
①創(chuàng)建App ID
登錄Apple Member Center :https://developer.apple.com/membercenter,選擇**certificates,identifiers&profiles **選項,如下圖所示:

選擇identity中的APP IDs,如下圖所示:
注意:創(chuàng)建
Explicit App ID時,要注意此時設置的Bundle ID要與APP以后的Bundle ID一致,如下圖所示:
選擇**Push Notification **來開通Push功能,如下圖所示:
點擊下方的**register 按鈕,幾秒鐘之后下方會變成一個Done **,表示APP ID已經(jīng)創(chuàng)建完成,如下圖所示:
注意:
創(chuàng)建的APP ID要與自己項目的Bundle ID保持一致。如果已經(jīng)有APP ID,請確保自己的APP ID已經(jīng)開通了Push功能,如果沒有開通,可以點擊APP ID,在其底部有一個Edit按鈕,點擊后選中Push服務并創(chuàng)建,如下圖所示:
至此,APP ID創(chuàng)建完畢。
②創(chuàng)建開發(fā)證書和發(fā)布證書
CSR文件
CSR是Cerificate Signing Request的英文縮寫,即證書請求文件。證書申請者在申請數(shù)字證書時由CSP(加密服務提供者)在生成私鑰的同時也生成證書請求文件。證書申請者只要把CSR文件提交給證書頒發(fā)機構后,證書頒發(fā)機構使用其根證書私鑰簽名就生成了證書公鑰文件,也就是頒發(fā)給用戶的證書。
在電腦中找到鑰匙串----->鑰匙串訪問------>證書管理------>從證書頒發(fā)機構請求證書,如下圖所示:
設置完證書信息后,點擊“繼續(xù)”,然后選擇存儲位置,點擊存儲,至此,CSR文件創(chuàng)建成功。
開發(fā)證書
選擇Development(發(fā)布證書,需要選擇Distribution),如下圖所示:
之后,你將看到如下四個證書。這一步,我們選擇iOS App Development證書,如下圖所示:
在choose file...中選擇本地的CertificateSigningRequest(CSR)文件,然后點擊繼續(xù),如下圖所示:
點擊Download,將證書下載到本地,雙擊下載安裝。
導出證書的p12文件:
==如果是團隊合作,可以將證書導出.p12文件,供其他開發(fā)者在各自電腦上安裝。==
注意:此步驟所設置的密碼將在之后會用到,且密碼只能包含大小寫(a-z,A-Z ),數(shù)字(0-9),特殊字符(.-_),其他元素將會被過濾。
至此,P12證書導出完畢。
將.p12文件收到后,雙擊該文件,會出現(xiàn)使用文件的密碼輸入框,輸入該.p12文件的使用密碼(就是生成的時候設的,不知道就問給你該文件的人),不是本機設備密碼。這是配置該文件在本地。然后將開發(fā)者賬號對應的開發(fā)證書和發(fā)布證書都可以download使用了。
發(fā)布證書
在iOS Certificates下選擇All,如下圖所示:
在Production下選擇App Store and Ad Hoc,如下圖所示:
點擊choose file選擇CSR文件,如下圖所示:
生成證書并點擊Download,將證書下載到本地,雙擊下載安裝。
==如果是團隊合作,可以將證書導出.p12文件,供其他開發(fā)者在各自電腦上安裝。==
③添加測試設備
測試推送需要添加測試設備,添加方法如下所示:
PS:Xcode8 開始, 會將在真機運行時設備自動加入測試設備。
④創(chuàng)建Provisioning Profiles文件
- iOS App Development 開發(fā)描述文件 用于開發(fā)人員真機調試 限制設備
- App Store 發(fā)布描述文件 用于發(fā)布App到App Store 不限制設備
- Ad Hoc 測試描述文件 用于打包給測試團隊 限制設備
開發(fā)Provisioning Profiles
選擇Development,創(chuàng)建開發(fā)環(huán)境的Provisioning Profiles(如果是發(fā)布上線,需要選擇Distribution),如下圖所示:
創(chuàng)建新的Provisioning Profiles,并選擇之前生成好的App ID。如下圖所示:
選中創(chuàng)建的證書:開發(fā)證書
選中測試設備:
把創(chuàng)建的Provisioning Profiles下載下來(文件名:umengpushtestdemo.mobileprovision)以后雙擊安裝。
測試(Ad Hoc):Provisioning Profiles
在Provisioning Profile下選擇All,如下圖所示:
在Distribution下選擇Ad Hoc,如下圖所示:
在Select App ID下選擇Ad Hoc,如下圖所示:
選擇證書,如下圖所示:
選擇指定設備,如下圖所示:
給profile文件起名,如圖中起名為Distribution-Ad-Hoc:
把創(chuàng)建的Provisioning Profiles(文件名:Distribution-Ad-Hoc)以后雙擊證書。
發(fā)布Provisioning Profiles
在Distribution下選擇App Store,如下圖所示:
==不同時開發(fā)和Ad Hoc描述需要選擇設備,App Store描述不需要選擇設備。==
5.創(chuàng)建推送證書
一般App都具有推送功能,推送證書是必須的。推送證書分為開發(fā)環(huán)境和生產(chǎn)環(huán)境:
- 開發(fā)推送證書
- 發(fā)布推送證書
開發(fā)推送證書
選擇Apple Push Notification service SSL(Sandbox)
選中APP ID后,點擊continue,直到上傳CRS文件,如下圖所示:
推送證書是對應APP ID的。這與開發(fā)證書是有區(qū)別的。
點擊Download,將證書下載到本地后,雙擊下載的開發(fā)環(huán)境推送證書(文件名為:aps_development.cer,可以自己更改命名),就可以在鑰匙串訪問中的我的證書中找到。
==如果是團隊合作,可以將證書導出.p12文件,供其他開發(fā)者在各自電腦上安裝。==
發(fā)布推送證書
推送證書分為開發(fā)環(huán)境和生產(chǎn)環(huán)境,如果需要生成生產(chǎn)環(huán)境的推送證書請選擇: Apple Push Notification service SSL (Sandbox&Production),如下圖所示:

==如果是團隊合作,可以將證書導出.p12文件,供其他開發(fā)者在各自電腦上安裝。==
參考:
iOS證書配置指南:http://dev.umeng.com/push/ios/license-configuration-guide