蘋果為了控制應(yīng)用的開發(fā)與發(fā)布流程漱牵,制定了一套非常復(fù)雜的機(jī)制夺蛇。這里面的關(guān)鍵詞有:個(gè)人開發(fā)者賬號,企業(yè)開發(fā)者賬號酣胀,bundle ID刁赦,開發(fā)證書,發(fā)布證書(又叫“生產(chǎn)證書”)闻镶,開發(fā)描述文件甚脉,發(fā)布描述文件,推送證書等...铆农。初級開發(fā)者很難理解這中間的關(guān)系和作用牺氨。下文就對上述列出的關(guān)鍵內(nèi)容和它們的關(guān)系做個(gè)詳細(xì)介紹。
1. 開發(fā)者賬號
開發(fā)者賬號其實(shí)就是apple id,只不過要成為開發(fā)者波闹,需要去蘋果開發(fā)者中心激活開發(fā)權(quán)限酝豪。激活開發(fā)者賬號分為三種,個(gè)人精堕,公司和企業(yè)。這三種賬號各自有些區(qū)別蒲障,下表是他們主要區(qū)別的對比:
賬號類型 | 支持applestroe上架 | 測試設(shè)備數(shù)量 | 申請費(fèi)用 | 申請需要 |
---|---|---|---|---|
個(gè)人 | 是 | 100 | 99$ | - |
公司 | 是 | 100 | 99$ | 鄧氏碼 |
企業(yè) | 否 | 不限 | 299$ | 鄧氏碼 |
所以如果應(yīng)用需要上appstroe歹篓,就要?jiǎng)?chuàng)建個(gè)人或者公司類型的賬號,如果只想內(nèi)部發(fā)布揉阎,就可以申請企業(yè)賬號庄撮。個(gè)人賬號和公司賬號的區(qū)別就是公司賬號能邀請多個(gè)賬號,他們可以和你共享資源協(xié)同開發(fā)此應(yīng)用毙籽,而不需要總是問你要你的賬號使用洞斯。
2. bundle ID
bundle ID可以翻譯成包ID,也可以叫APP ID 或應(yīng)用ID,它是每一個(gè)ios應(yīng)用的全球唯一標(biāo)識。無論代碼怎么改坑赡,圖標(biāo)和應(yīng)用名稱怎么換烙如,只要bundle id沒變,ios系統(tǒng)就認(rèn)為這是同一個(gè)應(yīng)用毅否。每開發(fā)一個(gè)新應(yīng)用亚铁,首先都需要到member center->identifier->APP IDS去創(chuàng)建一個(gè)bundle id。但是bundle id分為兩種:
- Explicit App ID(明確的APP ID)螟加,一般格式是:com.domainname.appname徘溢。這種id只能用在一個(gè)app上。每一個(gè)新應(yīng)用都要?jiǎng)?chuàng)建一個(gè)捆探。
- Wildcard App ID(通配符APP ID), 一般格式是:com.domainname.*然爆。這種id可以用在多個(gè)應(yīng)用上,雖然方便黍图,但是使用這種id的應(yīng)用不能使用通知功能曾雕,所以并不常用。
3. iOS Certificates
ios certificates就是證書雌隅。它的作用就是證明你的mac具有開發(fā)或發(fā)布某個(gè)開發(fā)者賬號下應(yīng)用的權(quán)限翻默。而且證書還分成兩種,一種是開發(fā)證書恰起,也叫Development certificate; 另一種是發(fā)布證書或叫生產(chǎn)證書修械,英文名叫Production certificate。
development certificate
開發(fā)證書是證明你的mac具有開發(fā)和真機(jī)調(diào)試你的程序的東西检盼。但是每個(gè)證書關(guān)聯(lián)著一個(gè)開發(fā)者賬號肯污,也就是說,你只能使用這個(gè)證書開發(fā)這個(gè)賬號底下的應(yīng)用,它是通過bundle id來知道該應(yīng)用是不是屬于自己的賬號蹦渣。所以哄芜,每次為一個(gè)開發(fā)者帳號開發(fā)應(yīng)用,就得需要這個(gè)賬號創(chuàng)建的開發(fā)證書柬唯。Production certificate
生產(chǎn)證書是證明你的mac是否具有發(fā)布應(yīng)用的權(quán)限认臊。在archive到appstore的時(shí)候,必須有生產(chǎn)證書锄奢,否則時(shí)上傳不成功的失晴。根證書
無論是開發(fā)證書還是生產(chǎn)證書,都必須從根證書上派生拘央。根證書就是根mac產(chǎn)生的證書涂屁,menber center上保存的那個(gè)證書就是根證書,它只能安裝在創(chuàng)建它的那臺mac上灰伟,其他的開發(fā)mac必須從那臺根mac上導(dǎo)出證書使用拆又。也就是所有的子證書都只能從根證書派生而來。
4. iOS Provisioning Profiles
iOS Provisioning Profiles也叫描述文件栏账,它用來標(biāo)識某個(gè)設(shè)備是否具有安裝某個(gè)應(yīng)用的權(quán)限帖族。描述文件分為開發(fā)描述文件和發(fā)布描述文件。其中發(fā)布描述文件又分為臨時(shí)發(fā)布描述文件和正式發(fā)布描述文件发笔。
- 開發(fā)描述文件(develop provisioning profile)
開發(fā)描述文件盟萨,創(chuàng)建它需要bundle ID + 開發(fā)證書 + 測試設(shè)備(在devices中添加)
; 編譯的時(shí)候必須三者對應(yīng),否則編譯器會(huì)報(bào)錯(cuò)了讨。 - 臨時(shí)發(fā)布描述文件(distribution ad hoc)
臨時(shí)發(fā)布描述文件是用來在有限設(shè)備上發(fā)布的捻激。創(chuàng)建它需要bundle ID +發(fā)布證書+發(fā)布設(shè)備
,編譯時(shí)也必須三者對應(yīng)前计。 - 正式發(fā)布描述文件(distribution appstore/distribution ad house)
個(gè)人賬號和企業(yè)賬號創(chuàng)建的正式發(fā)布描述文件是不同的胞谭。因?yàn)閭€(gè)人賬號是在appstrore上發(fā)布,所以創(chuàng)建的是distribution appstore描述文件男杈,而企業(yè)賬號只能內(nèi)部發(fā)布丈屹,所以創(chuàng)建的叫distribution ad house描述文件。但是它們創(chuàng)建所需要的東西都是一樣的:bundle ID + 發(fā)布證書
伶棒。 因?yàn)樗麄兪窃诓淮_定的設(shè)備上安裝的旺垒,所以不需要選擇設(shè)備。