做真機(jī)測試的時候,按照網(wǎng)上的流程,走通了,當(dāng)時沒有注意各種證書等的意思。現(xiàn)在做消息推送,需要各種證書、APP ID信息,為了更好的理解這個過程,所以整理了網(wǎng)上關(guān)于證書等的相關(guān)資料。方便自己和有需要的朋友。
內(nèi)容參考自:http://blog.csdn.net/hitwhylz/article/details/22989507
http://my.oschina.net/u/1245365/blog/196263
當(dāng)你準(zhǔn)備進(jìn)行真機(jī)測試或者發(fā)布應(yīng)用到App Store上去的時候, 免不了要申請相應(yīng)的證書。(Development--測試證書。 Distribution--發(fā)布證書)
進(jìn)入證書管理相應(yīng)網(wǎng)站https://developer.apple.com/account/ios/PRofile/profileList.action。
可以很容易的發(fā)現(xiàn)這樣的幾個東西。

其中, Devices指的當(dāng)然是設(shè)備了。 這里不做介紹。每個開發(fā)者賬號可以關(guān)聯(lián)100臺設(shè)備。你可以通過xcode直接添加你的設(shè)備。
現(xiàn)在, 著重講解下Certificate、AppId和Provisioning Profile。
證書是你有權(quán)利開發(fā)的憑證,是開發(fā)者的一種標(biāo)識,相當(dāng)于身份證,一個開發(fā)者賬號只有一套。一套含兩個,Development和Distribution(也就是Production)。
其中Development證書提供開發(fā)者在電腦上真機(jī)調(diào)試的權(quán)限,可以制作多個副本分發(fā)到多臺電腦。
Distribution證書給開發(fā)者提供發(fā)布ios程序的權(quán)限,也就是說有了這個,你就有權(quán)力發(fā)布程序到App Store去了。只有一個,不能制作副本分發(fā)到多臺電腦。
下面是證書的分類信息:(括號內(nèi)為證書有效期)
In-House and Ad Hoc (3年):用來發(fā)布In-House和AdHoc的應(yīng)用程序。
App Store :用來發(fā)布提交App Store的應(yīng)用程序。
注:
我們申請一個Certificate之前,需要先申請一個Certificate Signing Request (CSR) 文件,而這個過程中實際上是生成了一對公鑰和私鑰,保存在你Mac的Keychain中。代碼簽名正是使用這種基于非對稱秘鑰的加密方式,用私鑰進(jìn)行簽名,用公鑰進(jìn)行驗證。如下圖所示,在你Mac的keychain的login中存儲著相關(guān)的公鑰和私鑰,而證書中包含了公鑰。你只能用私鑰來進(jìn)行簽名,所以如果沒有了私鑰,就意味著你不能進(jìn)行簽名了,所以就無法使用這個證書了,此時你只能revoke之前的證書再申請一個。因此在申請完證書時,最好導(dǎo)出并保存好你的私鑰。當(dāng)你想與其他人或其他設(shè)備共享證書時,把私鑰傳給它就可以了。私鑰保存在你的Mac中,而蘋果生成的Certificate中包含了公鑰。當(dāng)你用自己的私鑰對代碼簽名后,蘋果就可以用證書中的公鑰來進(jìn)行驗證,確保是你對代碼進(jìn)行了簽名,而不是別人冒充你,同時也確保代碼的完整性等。

App ID用于標(biāo)識一個或者一組App,App ID應(yīng)該是和Xcode中的Bundle ID是一致的或者匹配的。App ID主要有以下兩種:
每創(chuàng)建一個App ID,我們都可以設(shè)置該App ID所使用的APP Services,也就是其所使用的額外服務(wù)。每種額外服務(wù)都有著不同的要求,例如,如果要使用Apple Push Notification Services,則必須是一個explicit App ID,以便能唯一標(biāo)識一個應(yīng)用程序。下面是目前所有可選的服務(wù)和相應(yīng)的配置要求。

如果你的App使用上述的任何一種service,就要按照要求去配置。
Identifiers 即”標(biāo)識符“,約等于是身份證,用于創(chuàng)建以下三個:
App IDs
Pass Type IDs
Website Push IDs
其中,App ID是應(yīng)用的唯一標(biāo)示符,每一個應(yīng)用的app id是不一樣的
一個Provisioning Profile文件包含了上述的所有內(nèi)容:證書、App ID、設(shè)備。
試想一下,如果我們要打包或者在真機(jī)上運(yùn)行一個應(yīng)用程序,我們首先需要證書來進(jìn)行簽名,用來標(biāo)識這個應(yīng)用程序是合法的、安全的、完整的等等;然后需要指明它的App ID,并且驗證Bundle ID是否與其一致;再次,如果是真機(jī)調(diào)試,需要確認(rèn)這臺設(shè)備能否用來運(yùn)行程序。而Provisioning Profile就把這些信息全部打包在一起,方便我們在調(diào)試和發(fā)布程序打包時使用,這樣我們只要在不同的情況下選擇不同的profile文件就可以了。而且這個Provisioning Profile文件會在打包時嵌入.ipa的包里。
例如,如下圖所示,一個用于Development的Provisioning Profile中包含了該P(yáng)rovisioning Profile對應(yīng)的App ID,可使用的證書和設(shè)備。這意味著使用這個Provisioning Profile打包程序必須擁有相應(yīng)的證書,并且是將App ID對應(yīng)的程序運(yùn)行到Devices中包含的設(shè)備上去。

如上所述,在一臺設(shè)備上運(yùn)行應(yīng)用程序的過程如下:

與證書一樣,Provisioning Profile也分為Development和Distribution兩種:
(注:前面提到不同賬戶類型所能創(chuàng)建的證書種類不同,顯然Profile文件的種類是和你所能創(chuàng)建的證書種類相關(guān)的)
In House 與Ad Hoc的不同之處在于:In House沒有設(shè)備數(shù)量限制,而Ad Hoc是用來測試用的,Ad Hoc的包只能運(yùn)行在該賬戶內(nèi)已登記的可用設(shè)備上,顯然是有最多100個設(shè)備的數(shù)量限制。所以這兩種Provisioning Profile文件的區(qū)別就在于其中的設(shè)備限制不一樣而已,而他們所使用的Certificate是相同的。
了解了上面的概念,再來看開發(fā)及發(fā)布流程就非常簡單了,而且相信你不用看教程也能一步步完成所有的操作了。
開發(fā)/真機(jī)調(diào)試流程
根據(jù)上面的介紹,可以知道進(jìn)行Development主要有以下幾個步驟:
事實上第三步通常是不需要的,因為我們通常都是用Xcode生成和管理的iOS Team Provisioning Profile來進(jìn)行開發(fā),因為它非常方便,所以不需要自己手動生成Provisioning Profile。
iOS Team Provisioning Profile是第一次使用Xcode添加設(shè)備時,Xcode自動生成的,它包含了Xcode生成的一個Wildcard App ID(*,匹配所有應(yīng)用程序),賬戶里面所有的Devices和所有Development Certificates,如下圖所示。因此,team中的所有成員都可以使用這個iOS Team Provisioning Profile在team中的所有設(shè)備上調(diào)試所有的應(yīng)用程序。并且當(dāng)有新設(shè)備添加進(jìn)來時,Xcode會更新這個文件。

發(fā)布流程
網(wǎng)上有很多關(guān)于發(fā)布App Store的流程,我就不綴述了,不過根據(jù)上面的概念介紹,不管是App Store、In-House還是Ad-Hoc,打包流程都是差不多的,都包括了以下幾個關(guān)鍵步驟:
以上就是對證書、Provisioning Profile、App ID等的介紹,下一篇文章會介紹以下In-House證書相關(guān)的內(nèi)容。
點擊"其他",找到“鑰匙串”:
選擇從頒發(fā)機(jī)構(gòu)申請證書,注意下面的紅色框,必須選擇那一個才可以:
點擊后看到:
如果選擇 “存儲到磁盤”,那么“用戶郵件地址” 隨便填一個就好,點擊“繼續(xù)”:
“存儲為:”可以給證書命名,選擇一個位置,點擊“存儲”:
這樣在桌面就生成了一個證書。
注意這一個本地證書可以同時用來生成“開發(fā)證書”和“發(fā)布證書”。
下面只介紹“發(fā)布證書“的申請,申請”開發(fā)證書“步驟相同,就是換一個選項
我們進(jìn)入99美元開發(fā)賬號看到:
點擊 Certificates, Identifiers & Profiles,進(jìn)入頁面看到:
如果要申請開發(fā)證書就選擇 Development,如果要申請發(fā)布證書,就選擇 Production,步驟都是選擇“+”號后添加證書:
點擊“+”后看到:
如果是選擇 “開發(fā)證書”,點擊第一個紅框
如果是選擇 “發(fā)布證書”,點擊第二個紅框
選擇好后,點擊“continue”:
選擇“Choose File” 將剛剛申請的保存在本地的證書上傳:
上傳好后,點擊“Generate” 就可以生成證書了。
選擇“Download”。
這時,我們在本地生成的證書就沒用了,可以刪除。
我們返回到證書的界面可以看到我們申請的證書:
一般申請一個 發(fā)布證書(IOS Distribution),一個開發(fā)證書(IOS Development)就夠用了。
找到下載的文件,雙擊它,添加到鑰匙串里就好了。在這一步里,如果鑰匙串拒絕添加,直接將其拖進(jìn)鑰匙串就行:
這樣證書就申請完畢了,有了證書后,接下來可以申請各種各樣的描述文件供開發(fā)使用
新聞熱點
疑難解答