IOS證書的申請和使用


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

關於證書

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

在開發iOS應用的時候,我們需要簽名證書(開發證書)來驗證,並允許我們在真機上對App進行測試。另外,在發布App到App store的時候,我們也需要證書(發布證書)來做驗證。那么什么是簽名證書,如何獲取簽名證書,下面聽我慢慢道來。

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

1

當安裝好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、開發者證書的制作,首先登陸到開發者中心,找到證書配置的版塊,猛戳進入,點進證書,會顯示如下界面,點擊右上角的加號:

會出現以下界面,該操作重復兩次,分別創建開發測試證書和發布證書,開發測試證書用於真機調試,發布證書用於提交到appStore,我們以開發測試證書為例,選擇第一個紅框中的內容:

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

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

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

之后將該CSR文件保存到一處;

繼續返回Apple developer 網站點擊 Continue ,上傳剛剛生成的 .certSigningRequest (CSR)文件生成 APNs Push  Certificate(CER):

提交上去后就會生成一個cer證書,如圖所示,有效期為一年;

下載並雙擊打開證書,證書打開時會啟動“鑰匙串訪問”工具。

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

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

之后在開發者中心將該CSR文件提交;

 

如果開發者B,登錄開發者賬號,下載證書(cer文件)運行,只有證書沒有秘鑰,是不能正常使用的

blob.png

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

另外可以給同事一份Provisioning Profiles文件(配置文件),用於本地開發識別測試設備

導出p12文件:鑰匙串——選擇證書——右鍵導出——存儲為——設置p12文件密碼

(發給同事后,雙擊p12文件,輸入密碼,本地安裝證書成功)

需要強調一點,證書和項目關系其實並不大,證書一般有效期只有一年,當證書過期后,只需要重新生成一份證書,上傳到開發者賬號就行,同時因為原有證書過期,需要重新生成Provisioning Profiles文件。然后給同事們最新的p12文件和Provisioning Profiles文件就行

所以開發者賬號中的證書,配置文件是可以放心操作的(比如誤刪了,或者找不到證書秘鑰了)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM