Certificates
Certificates 即 ”證書“,約等于通行證油够,申請證書是我們進(jìn)行真機調(diào)試與發(fā)布的第一步。證書主要分為兩類:
Development證書用來開發(fā)和調(diào)試應(yīng)用程序
Production主要用來分發(fā)應(yīng)用程序(根據(jù)證書種類有不同作用)
下面是證書的分類信息:(括號內(nèi)為證書有效期)
- Development
- App Development (1年):用來開發(fā)和真機調(diào)試應(yīng)用程序。
- Push Development (1年):用來調(diào)試Apple Push Notification
- Production
- In-House and Ad Hoc (3年):用來發(fā)布In-House和AdHoc的應(yīng)用程序。
- App Store :用來發(fā)布提交App Store的應(yīng)用程序。
- MDM CSR
- Push Production (1年):用來在發(fā)布版本中使用Apple Push Notification。
- Pass Type ID Certificate:用于通行證類證書
- Website Push ID Certificate
申請一個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)行了簽名,而不是別人冒充你珍特,同時也確保代碼的完整性等祝峻。
Identifiers
App ID用于標(biāo)識一個或者一組App,App ID應(yīng)該是和Xcode中的Bundle ID是一致的或者匹配的扎筒。App ID主要有以下兩種:
- Explicit App ID:唯一的App ID呼猪,這種App ID用于唯一標(biāo)識一個應(yīng)用程序,例如:com.ABC.demo1砸琅,標(biāo)識Bundle ID為com.ABC.demo1的程序宋距。
- Wildcard App ID:通配符App ID,用于標(biāo)識一組應(yīng)用程序症脂。例如:可以表示所有應(yīng)用程序谚赎,而com.ABC.可以表示以com.ABC開頭的所有應(yīng)用程序。
每創(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)的配置按要求設(shè)置就行了躲撰。
Devices
Device最簡單了,就是iOS設(shè)備击费。Devices中包含了該賬戶中所有可用于開發(fā)和測試的設(shè)備拢蛋。 每臺設(shè)備使用UDID來唯一標(biāo)識。
每個賬戶中的設(shè)備數(shù)量限制是100個蔫巩。Disable 一臺設(shè)備也不會增加名額谆棱,只能在membership year 開始的時候才能通過刪除設(shè)備來增加名額。
Provisioning Profiles
Provisioning Profiles 即“描述文件”圆仔。它的功能很特別垃瞧,專門用于將 Certificates、Identifiers坪郭、Devices結(jié)合起來皆警,形成一個描述證書、標(biāo)示符的描述文件截粗。Provisioning Profiles 放入我們的xcode中信姓,讓 xcode知道我們的證書和哪些設(shè)備之類的信息相匹配。而且這個Provisioning Profile文件會在打包時嵌入.ipa的包里绸罗。
與證書一樣意推,Provisioning Profile也分為Development和Distribution兩種:
注:前面提到不同賬戶類型所能創(chuàng)建的證書種類不同,顯然Profile文件的種類是和你所能創(chuàng)建的證書種類相關(guān)的
- Development (1年)
- Distribution (1年)
- In House
- Ad Hoc
- App Store
In House 與Ad Hoc的不同之處在于:In House沒有設(shè)備數(shù)量限制珊蟀,而Ad Hoc是用來測試用的菊值,Ad Hoc的包只能運行在該賬戶內(nèi)已登記的可用設(shè)備上,顯然是有最多100個設(shè)備的數(shù)量限制育灸。所以這兩種Provisioning Profile文件的區(qū)別就在于其中的設(shè)備限制不一樣而已腻窒,而他們所使用的Certificate是相同的。
下面來介紹如何申請證書:
第一步:申請本地證書
申請證書必須在我們的電腦上先申請一個證書磅崭,打開鑰匙串訪問
選擇證書-->鑰匙串訪問-->證書助理-->從證書頒發(fā)機構(gòu)請求證書
點擊后進(jìn)入下面界面儿子,郵件地址隨便填
點擊繼續(xù),然后存儲到指定位置
這樣在桌面就生成了一個證書砸喻。
注意這一個本地證書可以同時用來生成“開發(fā)證書”和“發(fā)布證書”柔逼。
下面只介紹“發(fā)布證書“的申請,申請”開發(fā)證書“步驟相同割岛,就是換一個選項
第二步: 在開發(fā)者賬號里申請證書
我們進(jìn)入99美元開發(fā)賬號選擇Certificates,Identifiers &profiles
選擇Certificates --> All項就可查看所有申請的證書愉适,點擊右上角的 ? 號,進(jìn)入如下添加界面
然后一直點擊 “Continue” 维咸,直到下面界面
選擇之前創(chuàng)建的本地證書,點擊 “Generate”,然后看到界面
選擇 “Download” 癌蓖,然后 “Done” ,回到證書界面就可看到你申請的證書了
一般申請一個 發(fā)布證書(IOS Distribution)费坊,一個開發(fā)證書(IOS Development)就夠用了两残。
找到下載的文件人弓,雙擊它沼死,添加到鑰匙串里就好了。在這一步里,如果鑰匙串拒絕添加健芭,直接將其拖進(jìn)鑰匙串就行:
這樣證書就申請完畢了县钥,有了證書后,接下來可以申請各種各樣的描述文件供開發(fā)使用
關(guān)于Identifiers &Profiles慈迈,還有Device若贮,都很簡單,需要什么證書痒留,設(shè)備谴麦,就創(chuàng)建需要的證書就行。選擇需要創(chuàng)建證書的選項伸头,然后選擇右上角 ? 號匾效,一步一步按照需求填寫,最后完了下載Profiles證書恤磷,雙擊證書執(zhí)行就OK了弧轧。