對于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安裝到其他電腦上,其他電腦也不可能具有證書的權限。
平常我們的制作流程一般都是先利用開發者帳號登陸開發者中心,創建開發者證書,AppID,在AppID中開通推送服務,在開通推送服務的選項下面創建推送證書(服務器端的推送證書見下文),之后在Provisioning Profile文件中綁定所有的證書id,添加調試真機等;
具體操作流程如下:
第一步:申請“開發證書”
登錄,登錄成功后如下圖所示
找到證書板塊,點擊進入
點進證書,會顯示如下界面,點擊右上角的加號
會出現以下界面,該操作重復兩次,分別創建開發測試證書和發布證書,開發測試證書用于真機調試,發布證書用于提交到appStore,我們以開發測試證書為例,選擇第一個紅框中的內容;
然后下一步,會提示創建CSR文件,也就是證書簽名請求文件,會有很詳細的操作說明,如果英文不太好,可以參考下圖;
(1)? ? ? 點擊鑰匙圖標
(2) ? 在菜單欄中依次選擇:鑰匙串訪問?偏好設置?證書選項卡,下面兩項全部選關閉
(3) ?生成證書請求:鑰匙串訪問?證書助理?從證書頒發機構請求證書
填寫開發賬號郵件和常用名稱,勾選“存儲到磁盤”
保存后的名稱應該為:CertificateSigningRequest.certSigningRequest
保存到磁盤后在你的鑰匙串訪問窗口應該會出兩個密鑰,一個公鑰密鑰,一個專用密鑰,紅色部分就是你在上面輸入的常用名
備注:CSR文件盡量每個證書都制作一次,將常用名稱區分開來,因為該常用名稱是證書中的密鑰的名字;之后在開發者中心將該CSR文件提交;
提交上去后就會生成一個cer證書,如圖所示,有效期為一年;
利用同樣的方法配置一下Distribution發布證書,下載保存,雙擊安裝;在鑰題串登陸證書中可以查看,其中專用密鑰的名字即為CSR請求文件中的常用名稱;
如果是申請推送證書,則會關聯一個App ID
第二步:注冊 App ID
選擇 “Identifiers”的 “App IDs”,點擊“+”
出現以下界面:
App ID Description 是一個App ID的描述,就是一個名字,這個名字可以隨便取
App ID Prefix 蘋果已經幫我們填了,不需要我們填,可以看出,它是一個團隊的ID
填寫bundle ID:
服務中文翻譯
最后會有一個詳細的內容列表,對應無誤后,提交完成
第三步:申請設備
如圖,點擊“+”,一個99美元賬號只能申請100個設備。
填寫自己測試設備的名字和UDID,UDID在Xcode中可以查看
查看UDID
打開Xcode
填好 name 和 UDID后,點擊continue 就可以看到如下界面,點擊“Register”就可以在蘋果上登記了。
第四步:授權文件申請(Provisioning Profile)
選擇授權文件類型,下面羅列了iOS常的授權文件類型
選擇我們剛剛生成的 App ID,選好后,點擊“Continue”
這里選擇一個開發證書,有兩點要注意:
這個證書是我們剛剛自己在本機(當前電腦)與蘋果開發者網站生成的 開發證書 “Development certificate”
如果不是剛生成的,這個證書必須在本地的mac的鑰匙串中存在(帶密鑰的證書,不帶密鑰的依然無效)
如果不想自己在重新生成證書,用別人生成的證書,可以從別人的電腦中導出p12文件
選好證書以后,點擊“Continue”
選擇設備,設備可以選擇全部設備,也可以按需選擇你需要的設備:
這里給我們的描述文件取一個名字,這個名字在以后的xcode中是看得到的,所以可以取一個好辨認的名字。取好名字后,選擇“Continue”生成描述文件。
生成好描述文件后,選擇“Download”,雙擊進行安裝
關于.p12證書
為什么要導出p12
當我們用大于三個mac設備開發應用
時,想要申請新的證書,如果在我們的證書里,包含了3個發布證書,2個開發證書,可以發現再也申請不了開發證書和發布證書了(一般在我們的證書界面中應該
只有一個開發證書,一個發布證書,沒必要生成那么多的證書,證書一般在過期之后才會重新添加。)
如圖:
這時候,再點擊“+”時,就會發現點擊不了開發和發布證書,也就是添加不了開發證書和發布證書了:
有兩個解決不能添加證書的方法:
第一種方法是將以前的證書“revoke”掉,如圖:
然后重新生成一個新的證書。
這種方法是可以的,但是會造成相應的Provisioning Profiles失效,這個可大可小。如果只有你一個人則問題不大,如果是一個團隊大家都在用,你把這個證書刪除了,會導致別人的描述文件失效,這意味著別人不能發布應用了(還可以開發),這可是大問題,所以不提倡這種做法。
第二種方法是生成p12文件:
我們的每一個證書都可以生成一個.p12文件,這個文件是一個加密的文件,只要知道其密碼,就可以供給所有的mac設備使用,使設備不需要在蘋果開發者網站重新申請開發和發布證書,就能使用(強烈推薦,目前基本上都是這樣用)。
注意:一般.p12文件是給與別人使用的,本機必須已經有一個帶秘鑰的證書才可以生成.p12文件,如圖:
打開鑰匙串,選擇我們需要的證書,右擊,選擇“導出“iPhone Distribition:```”:
為.p12文件填一個名字,點擊存儲:
填一個“密碼”,“驗證”和密碼相同:
點擊好,在桌面上就形成了一個.p12文件了:
在別人的電腦上要成功安裝,必須具備兩個文件:
該證書導出的“.p12”文件。
蘋果開發者中的與“證書”對應的“描述文件”
如果需要用于開發的,那么需要這兩個文件:
.p12文件本身就是一個加密的證書,所以用這兩個文件就可以讓其他mac設備使用了:
拿到這兩個文件后,依次雙擊“證書”,“.p12“文件(需要輸入密碼,密碼就是當時生成.p12時設定的密碼,),作用是加入鑰匙串中,使我們的電腦具備開發的證明,”描述文件“(作用是置于xcode中,讓xcode知道我們開發的合法性),添加完后就可以使用了。