關(guān)于蘋果開(kāi)發(fā)者賬號(hào)應(yīng)用的那些事

前言

好久沒(méi)打過(guò)包,也沒(méi)上傳過(guò)App Store應(yīng)用了,最近因?yàn)殚_(kāi)發(fā)需要,又需要折騰證書(shū)這塊東西,發(fā)現(xiàn)這塊知識(shí)掌握的不牢,以前所了解的也有些模糊,導(dǎo)致使用時(shí)出現(xiàn)各種問(wèn)題,究其原因還是自己理解的不夠深!這篇文章就是根據(jù)自己的理解以及查找相關(guān)資料對(duì)此問(wèn)題做的一個(gè)記錄。

一、基本常識(shí)

1、App ID(bundle identifier)
App ID 是根據(jù)應(yīng)用的boundID生成的,是APP的唯一標(biāo)識(shí)。如果在開(kāi)發(fā)階段沒(méi)有生成App ID,蘋果會(huì)生成一個(gè)通配的Wildcard 來(lái)匹配應(yīng)用。在生成App ID 時(shí)要注意格式。
2、設(shè)備(Device)
Device就是運(yùn)行iOS系統(tǒng)用于開(kāi)發(fā)調(diào)試App的設(shè)備。每臺(tái)Apple設(shè)備使用UDID來(lái)唯一標(biāo)識(shí)。
公司賬號(hào)和個(gè)人賬號(hào),只能添加100臺(tái)設(shè)備,一年才可以修改一次。所以添加設(shè)備時(shí)要慎用
企業(yè)賬號(hào)對(duì)設(shè)備的數(shù)量沒(méi)有限制,不過(guò)它不能上架App Store,至于他們的區(qū)別,自己谷歌吧。
3、證書(shū)(Certificate)
iOS證書(shū)分為兩類:Development和Production(Distribution)。
Development證書(shū)用來(lái)開(kāi)發(fā)和調(diào)試應(yīng)用程序,Production主要用來(lái)發(fā)布應(yīng)用程序到蘋果商店。
普通個(gè)人開(kāi)發(fā)賬號(hào)最多可注冊(cè)iOS Distribution證書(shū)2個(gè),Development證書(shū)5個(gè),用戶可在網(wǎng)站上刪除(Revoke)已注冊(cè)的Certificate。
注意:
a.證書(shū)過(guò)期了不會(huì)影響已上線版本 b.開(kāi)發(fā)者帳號(hào)過(guò)期了會(huì)影響線上版本
至于證書(shū)的申請(qǐng)流程,很簡(jiǎn)單,在這里就不一一贅述,簡(jiǎn)單說(shuō)一下公鑰和私鑰
公鑰(public key):公鑰被包含在證書(shū)里,證書(shū)又被包含在描述文件(Provisioning File)中,描述文件在應(yīng)用被安裝的時(shí)候會(huì)被拷貝到iOS設(shè)備中。iOS安全系統(tǒng)通過(guò)證書(shū)就能夠確定開(kāi)發(fā)者身份,就能夠通過(guò)從證書(shū)中獲取到的公鑰來(lái)驗(yàn)證開(kāi)發(fā)者用該公鑰對(duì)應(yīng)的私鑰簽名后的代碼、資源文件等有沒(méi)有被更改破壞,最終確定應(yīng)用能否合法的在iOS設(shè)備上合法運(yùn)行。
私鑰(private key):每個(gè)證書(shū)(其實(shí)是公鑰)都對(duì)應(yīng)有一個(gè)私鑰,私鑰會(huì)被用來(lái)對(duì)代碼、資源文件等簽名。只有開(kāi)發(fā)證書(shū)和描述文件是沒(méi)辦法正常調(diào)試的,因?yàn)闆](méi)有私鑰根本無(wú)法簽名。
4、Provisioning Profiles文件
描述文件包含了APP的基本信息:證書(shū)、App ID和設(shè)備。Provisioning Profile也分為Development和Distribution兩類,有效期同Certificate一樣。Distribution版本的ProvisioningProfile主要用于提交App Store審核,Development版本主要用于真機(jī)測(cè)試。
5、 developerprofile(授權(quán)文件)
授權(quán)文件主要是在多人開(kāi)發(fā)是用到的,其中包含了:賬戶信息,相關(guān)的證書(shū),描述文件等

二、自動(dòng)管理證書(shū)和手動(dòng)管理證書(shū)

1、自動(dòng)管理證書(shū)的原則是根據(jù)你創(chuàng)建的APP ID來(lái)匹配證書(shū)和配置文件,而手動(dòng)管理證書(shū)需要手動(dòng)去配置,每次作出修改,都需要重新再網(wǎng)站上生成,然后下發(fā)給各個(gè)團(tuán)隊(duì)成員,不利于團(tuán)隊(duì)的開(kāi)發(fā)。
2、手動(dòng)管理證書(shū)的證書(shū)和App ID 的生成還需要在官網(wǎng)上生成。
3、省事,開(kāi)發(fā)和發(fā)布證書(shū)安裝好了之后,Xcode會(huì)自動(dòng)其匹配,避免因?yàn)樽C書(shū)和描述文件過(guò)多而選錯(cuò)的問(wèn)題。
4、在開(kāi)發(fā)階段,設(shè)置自動(dòng)管理證書(shū),就不需要去網(wǎng)站一步步的去生成相關(guān)文件,只需要把開(kāi)發(fā)賬號(hào)添加到賬戶中去,賬號(hào)會(huì)根據(jù)根據(jù)你的MAC電腦自動(dòng)生成開(kāi)發(fā)證書(shū)、通配的App ID以及描述文件。

三、多人開(kāi)發(fā)時(shí)共享開(kāi)發(fā)賬戶/證書(shū)

新人加入團(tuán)隊(duì)開(kāi)發(fā)時(shí),不可避免要真機(jī)測(cè)試和打包發(fā)布,這時(shí)就需要安裝證書(shū)和授權(quán)等,獲得此權(quán)限有兩種方式:
注意: Apple 為了安全的考量,將 private key 存在當(dāng)初生成 Certificate 的 Mac 上。如此除非 Mac 的主人主動(dòng)從它的 Mac 輸出 private key 給你,你才能搭配Certificate 制作、測(cè)試、上架 App。如果生成cer的MAC丟失或者是相關(guān)人員離職,也就是丟失了私鑰,就只能revoke掉,創(chuàng)建新的證書(shū)。
第一種方式:通過(guò)developerprofile文件給團(tuán)隊(duì)成員,此文件包含了 certificate, private key 和 profile
具體是在Xcode | Prefrences | Account 中導(dǎo)出,不過(guò)這樣會(huì)把該賬戶下的所有證書(shū)和描述文件都導(dǎo)出,如下圖:

E2BD4DE7-6538-4C0C-9F89-677F988BE332.png

第二種方式:導(dǎo)出P12文件,需要注意的是P12文件必須包含公鑰和私鑰。如下圖:
22CDBD38-A16B-4387-A506-C6A2E3CDEFA0.png

四、iOS證書(shū)管理

開(kāi)發(fā)團(tuán)隊(duì)的人員越多,合理的證書(shū)管理愈顯重要。流程上,為保證日常開(kāi)發(fā)應(yīng)用程序的安全與效率,無(wú)論是大到公司的發(fā)布證書(shū)抑或是小到項(xiàng)目組的團(tuán)隊(duì)個(gè)人開(kāi)發(fā)證書(shū),我們都盡量做到:
1、帳號(hào)密碼統(tǒng)一由一個(gè)人管理,避免多人創(chuàng)建證書(shū),導(dǎo)致混亂。
2、開(kāi)發(fā)人員統(tǒng)一到管理員領(lǐng)取.p12文件與Provision Profile文件或者是developerprofile來(lái)進(jìn)行應(yīng)用開(kāi)發(fā)或發(fā)布;
3、新增設(shè)備,提供設(shè)備名與UDID到證書(shū)管理員添加。

五、蘋果開(kāi)發(fā)者賬號(hào)管理后臺(tái)權(quán)限

蘋果提供了Agent、Admin、Member、No Access四種團(tuán)隊(duì)身份,它們分別擁有不同的權(quán)限。
Agent:代理人。這個(gè)賬號(hào)就是創(chuàng)建團(tuán)隊(duì)的賬號(hào),它擁有最大權(quán)限,且不會(huì)允許其他Admin修改Agent權(quán)限。但是Agent賬號(hào)可以將權(quán)限轉(zhuǎn)移。
Admin:管理員。它擁有幾乎所有內(nèi)容的管理權(quán)限
Member:成員。有權(quán)訪問(wèn)、下載一些信息,但是不能進(jìn)行修改、管理
No Access:無(wú)權(quán)限。(因?yàn)楹笈_(tái)有iOS、Mac、Safari三個(gè)模塊,因此每個(gè)模塊可以限定是否可以訪問(wèn))

寫的有些粗糙,有些理解的東西,在這里就不用文字詳述了,歡迎下面留言!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容