NO IMAGE

概述:

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

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

1、開發者證書(分為開發和釋出兩種,型別為iOSDevelopment,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檔案,也就是證書籤名請求檔案,會有很詳細的操作說明,如果英文不太好,可以參考下圖;

(1)       點選鑰匙圖示

(2)   在選單欄中依次選擇:鑰匙串訪問⟶偏好設定⟶證書選項卡,下面兩項全部選關閉

(3)  生成證書請求:鑰匙串訪問⟶證書助理⟶從證書頒發機構請求證書

(4)    輸入兩個電子郵件地址和常用名稱。電子郵件地址是你註冊AppleID。

a)   常用名稱輸入你在蘋果網站註冊的名稱,其它名稱沒試過,不知道行不行。

b)   選擇“儲存到磁碟”。儲存後的名稱應該為:CertificateSigningRequest.certSigningRequest

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

c)   儲存到磁碟後在你的鑰匙串訪問視窗應該會出兩個金鑰,一個公鑰金鑰,一個專用金鑰,紅色部分就是你在上面輸入的常用名。

備註:CSR檔案儘量每個證書都製作一次,將常用名稱區分開來,因為該常用名稱是證書中的金鑰的名字;

之後在開發者中心將該CSR檔案提交;

(5)         生成Certificates證書

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

利用同樣的方法配置一下Distribution釋出證書,下載儲存,雙擊安裝;在鑰題串登陸證書中可以檢視,其中專用金鑰的名字即為CSR請求檔案中的常用名稱;

第二步:新增App

IDs

2、以上開發者證書的配置完成了,下面我們來配置appID和推送證書;

選擇 “Identifiers”的 “App IDs”,點選“ ”

出現以下介面:

App ID Description 是一個App ID的描述,就是一個名字,這個名字可以隨便取

App ID Prefix 蘋果已經幫我們填了,不需要我們填,可以看出,它是一個團隊的ID

下一步,選擇App ID

Suffix

App ID Suffix 有兩個選項:

Explicit App ID :顧名思義,這裡要填一個明確的 App ID,

什麼意思呢?可以這麼來解釋:我們做專案時的Bundle Identifier (Bundle ID)是用來標示我們的app的。我們的App ID也是用來標示我們的app的。這兩個有什麼聯絡呢?Explicit App ID 就是要我們確定一個唯一的Bundle ID,用來標示我們的 app,使它有一個固定的身份。可以發現,當提交應用到蘋果時,如果我們一開始沒寫Explicit App ID,蘋果會自動幫我們生成一個與我們釋出時填的一樣的Bundle ID 到我們的App ID中。

填寫Explicit App ID 的格式為:com.company.appName

Wildcard App ID:顧名思義,這裡要填一個萬用字元的 App ID 。意思就是,我們只需要填一個在所有應用都能試用的 App ID 就好了。

填寫WildcardApp ID 的格式為:com.company.*

申請真機除錯的時候,不是為了某一個應用去除錯,而是為了所有的應用去除錯,必須能適應每一個app,所以我們選擇Wildcard

App ID。

com.company.* 的company 一般寫公司的名字,也可以按需要寫

可以發現,選擇Explicit App ID 會比Wildcard

App ID 多幾個服務選項可以選,不過我們是真機除錯,所以無所謂,將能選的勾上,選擇“Continue”就好。

看到如下介面,點選“Submit”後就可以生成App ID了

第三步:申請裝置

如圖,點選“ ”,一個99美元賬號只能申請100個裝置。

Name 自己取一個裝置的名字,UDID約等於裝置的身份證,可以在xcode中檢視

檢視UDID

開啟xcode,選擇“Windows” 的“organizer”:

選擇裝置看到 “identifier”,這個就是我們裝置的 UDID,將其複製,可以填入上上圖顯示的 UDID中。

當你的機子第一次用於開發時,可以看到,顯示的燈是“灰色”的,可以點選“use for developer” 來作為開發機。點選了“use for developer”後,可以發現你的燈變成了黃色的了。

如果一個手機本來就是開發機(一個手機可以安裝多個開發用的描述檔案)或者越獄的手機,那麼它剛插進去就是綠燈。但是綠燈並不代表就能用,必須安裝相適應的描述檔案。如圖就是一個沒有安裝相應描述檔案的開發機。

填好 name 和 UDID後,點選continue 就可以看到如下介面,點選“Register”就可以在蘋果上登記了。

第四步:申請描述檔案(PP檔案)

4、PP檔案的製作

如圖點選“ ”

選擇    “iOS App Developer”,然後“Continue”

這裡選擇我們剛剛生成的 App ID,選好後,點選“Continue”

這裡選擇一個開發證書,有兩點要注意:

這個證書是我們剛剛自己在本機(當前電腦)與蘋果開發者網站生成的 開發證書 “Development certificate”

如果不是剛生成的,這個證書必須在本地的mac的鑰匙串中存在(帶金鑰的證書,不帶金鑰的依然無效)

如果不想自己在重新生成證書,用別人生成的證書,可以從別人的電腦中匯出p12檔案,參見最下方的”關於.p12證書”.

選好證書以後,點選“Continue”

選擇裝置,裝置可以選擇全部裝置,也可以按需選擇你需要的裝置:

這裡給我們的描述檔案取一個名字,這個名字在以後的xcode中是看得到的,所以可以取一個好辨認的名字。取好名字後,選擇“Generate”生成描述檔案。

生成好描述檔案後,選擇“Download”,雙擊進行安裝(安裝後在xcode中可以檢視)

安裝成功後,以前沒作為開發機的手機會變成綠色的(以前就是開發機和越獄的手機一直是綠色的,但是不重新申請符合證書的真機除錯任然是不能真機除錯的)

點選“Provisioning

Profiles” 看到 “Valid profile” 就是成功安裝的意思。

如果沒有安裝成功,一般是證書或者描述檔案的問題,看看證書是不是從自己的機子上生成的,描述檔案的配置資訊(是否和你的本機存在的帶祕鑰的證書相匹配,你新增的裝置是否包含你現在選擇除錯的裝置)等,如圖第一個警告是因為沒有證書與描述檔案相匹配出現的

配置好後,還不是綠燈,則考慮問題:

裝置版本高於XCode所能支援的版本,如XCode4.6.3,能支援的最高版本未iOS6.1,如果你的裝置系統大於等於iOS7以上,此時需要   更新至XCode5;  再如:XCode5 不支援ios7.1,如果想開發ios7.1,必須將xcode5 升級到 xcode5.1以上版本;

例如:

在真機除錯時,不要忘記設定這兩個,否則除錯失敗:

這個必須填:之前寫Wildcard

App ID 的內容. app的名字

設定好這兩個之後再點選執行。

關於.p12證書

為什麼要匯出.p12檔案

當我們用大於三個mac裝置開發應用

時,想要申請新的證書,如果在我們的證書裡,包含了3個釋出證書,2個開發證書,可以發現再也申請不了開發證書和釋出證書了(一般在我們的證書介面中應該

只有一個開發證書,一個釋出證書,沒必要生成那麼多的證書,證書一般在過期之後才會重新新增。)

如圖:

這時候,再點選“ ”時,就會發現點選不了開發和釋出證書,也就是新增不了開發證書和釋出證書了:

有兩個解決不能新增證書的辦法。

第一種方法——“revoke”(不推薦):

將以前的證書“revoke”掉,如圖:

然後重新生成一個新的證書。

這種方法是可以的,但是會造成相應的Provisioning Profiles失效,這個可大可小。如果只有你一個人則問題不大,如果是一個團隊大家都在用,你把這個證書刪除了,會導致別人的描述檔案失效,這意味著別人不能釋出應用了(還可以開發),這可是大問題,所以不提倡這種做法。

第二種方法——“.p12”(推薦):

我們的每一個證書都可以生成一個.p12檔案,這個檔案是一個加密的檔案,只要知道其密碼,就可以供給所有的mac裝置使用,使裝置不需要在蘋果開發者網站重新申請開發和釋出證書,就能使用。

注意:一般.p12檔案是給與別人使用的,本機必須已經有一個帶祕鑰的證書才可以生成.p12檔案,如圖:

開啟鑰匙串,選擇我們需要的證書,右擊,選擇“匯出“iPhone Distribition:“`”:

為.p12檔案填一個名字,點選儲存:

填一個“密碼”,“驗證”和密碼相同:

點選好,在桌面上就形成了一個.p12檔案了:

在別人的電腦上要成功安裝,須具備兩個檔案:

該證書匯出的“.p12”檔案。

蘋果開發者中的與“證書”對應的“描述檔案”

如果需要用於開發的,那麼需要這兩個檔案:

.p12檔案本身就是一個加密的證書,所以用這兩個檔案就可以讓其他mac裝置使用了:

拿到這兩個檔案後,依次雙擊“證書”,“.p12“檔案(需要輸入密碼,密碼就是當時生成.p12時設定的密碼,),作用是加入鑰匙串中,使我們的電腦具備開發的證明,”描述檔案“(作用是置於xcode中,讓xcode知道我們開發的合法性),新增完後就可以使用了。