天天看點

IOS證書的申請和使用

蘋果的證書繁鎖複雜,制作管理相當麻煩,今天決定重置一個遊戲項目中的所有證書,做了這麼多次還是感覺很糾結,索性直接記錄下來,日後你我他查閱都友善;

關于證書

蘋果使用密文簽名技術來驗證App的合法性,不管是iOS應用還是Mac應用都需要相應的簽名證書來作為測試或釋出App用。這裡主要談談iOS的證書,當然,Mac的證書也基本類似。

在開發iOS應用的時候,我們需要簽名證書(

開發證書

)來驗證,并允許我們在真機上對App進行測試。另外,在釋出App到App store的時候,我們也需要證書(

釋出證書

)來做驗證。那麼什麼是簽名證書,如何擷取簽名證書,下面聽我慢慢道來。

首先,證書(

Certificate

)是用來證明某一件事是否成立的,好比拿到的獲獎證書,是證明參加比賽并獲獎的憑證。類似,在iOS開發中,用證書來證明你是否具有某些權限或者能力來做某事。代碼簽名驗證允許我們的作業系統來判斷是誰對App進行了簽名,在安裝了Xcode後,Xcode會在項目編譯期間使用你的代碼簽名驗證,這個驗證由一個由Apple認證過的公鑰-私鑰對組成,私鑰存儲在你的鑰匙串中(Mac本地,在系統實用工具中),公鑰包含在證書(Certificates)中,證書在本地鑰匙串和開發者賬号中都有存儲,這種公鑰-私鑰驗證授權的方式在很多地方都有使用到,比如Git中的SSH協定也是通過這種方式來确認通路權限。另外,還有一個我們可以叫做媒介證書的證書來確定我們的證書(Certificates)是經過授權而釋出的。如下圖所示:

當安裝好Xcode時,媒介證書(Intermediate Certificate)就已經安裝到我們的鑰匙串中去了。通過在開發者賬号(Developer Account)和本地(Mac)都經過驗證的證書(Certificate)我們就可以利用合法的證書進行App的測試和釋出了。

首先得描述一下各個證書的定位,作用,這樣在制作的時候心中有譜,對整個流程的把握也會準确一些;

1、開發者證書(分為開發和釋出兩種,類型為ios Development,ios Distribution),這個是最基礎的,不論是真機調試,還是上傳到appstore都是需要的,是一個基證書,用來證明自己開發者身份的;

2、appID,這是每一個應用的獨立辨別,在設定項中可以配置該應用的權限,比如是否用到了PassBook,GameCenter,以及更常見的push服務,如果選中了push服務,那麼就可以建立生成下面第3條所提到的推送證書,是以,在所有和推送相關的配置中,首先要做的就是先開通支援推送服務的appID;

3、推送證書(分為開發和釋出兩種,類型分别為APNs Development ios,APNs Distribution ios),該證書在appID配置中建立生成,和開發者證書一樣,安裝到開發電腦上;

4、Provisioning Profiles,這個東西是很有蘋果特色的一個東西,我一般稱之為PP檔案,該檔案将appID,開發者證書,硬體Device綁定到一塊兒,在開發者中心配置好後可以添加到Xcode上,也可以直接在Xcode上連接配接開發者中心生成,真機調試時需要在PP檔案中添加真機的udid;是真機調試和必架必備之珍品;

平常我們的制作流程一般都是按以上序列進行,先利用開發者帳号登陸開發者中心,建立開發者證書,appID,在appID中開通推送服務,在開通推送服務的選項下面建立推送證書(伺服器端的推送證書見下文),之後在PP檔案中綁定所有的證書id,添加調試真機等;

具體操作流程如下:

1、開發者證書的制作,首先登陸到開發者中心,找到證書配置的版塊,猛戳進入,點進證書,會顯示如下界面,點選右上角的加号:

IOS證書的申請和使用

會出現以下界面,該操作重複兩次,分别建立開發測試證書和釋出證書,開發測試證書用于真機調試,釋出證書用于送出到appStore,我們以開發測試證書為例,選擇第一個紅框中的内容:

IOS證書的申請和使用

然後下一步,會提示建立CSR檔案,也就是證書簽名請求檔案,會有很詳細的操作說明,如果英文不太好,可以參考下圖;

IOS證書的申請和使用

根據它的說明建立打開KeychainAccess 建立 Certificate Signing Request。

填寫“User Email Address”和“Common Name” 後選擇 Saved to disk 進行儲存 。

IOS證書的申請和使用

之後将該CSR檔案儲存到一處;

繼續傳回Apple developer 網站點選 Continue ,上傳剛剛生成的 .certSigningRequest (CSR)檔案生成 APNs Push  Certificate(CER):

IOS證書的申請和使用

送出上去後就會生成一個cer證書,如圖所示,有效期為一年;

下載下傳并輕按兩下打開證書,證書打開時會啟動“鑰匙串通路”工具。

在“鑰匙串通路”中你的證書會顯示在“我的證書”中,注意選擇“My Certificates” 和"login"

備注:CSR檔案盡量每個證書都制作一次,将常用名稱區分開來,因為該常用名稱是證書中的密鑰的名字;

之後在開發者中心将該CSR檔案送出;

如果開發者B,登入開發者賬号,下載下傳證書(cer檔案)運作,隻有證書沒有秘鑰,是不能正常使用的

是以如果有新同僚加入到開發組的時候,應該從本地鑰匙串中選擇證書,導出p12檔案(包含證書和秘鑰)給同僚。

另外可以給同僚一份Provisioning Profiles檔案(配置檔案),用于本地開發識别測試裝置

導出p12檔案:鑰匙串——選擇證書——右鍵導出——存儲為——設定p12檔案密碼

(發給同僚後,輕按兩下p12檔案,輸入密碼,本地安裝證書成功)

需要強調一點,證書和項目關系其實并不大,證書一般有效期隻有一年,當證書過期後,隻需要重新生成一份證書,上傳到開發者賬号就行,同時因為原有證書過期,需要重新生成Provisioning Profiles檔案。然後給同僚們最新的p12檔案和Provisioning Profiles檔案就行

是以開發者賬号中的證書,配置檔案是可以放心操作的(比如誤删了,或者找不到證書秘鑰了)