iOS打包發(fā)布流程

總體流程

提交你的應(yīng)用到AppStore是一個(gè)多步驟的過(guò)程:

  1. 你要登陸到iTunes Connect飘诗,然后創(chuàng)建一條App記錄并輸入一些必要的信息(如果要銷售你的App居凶,還需要填寫收款相關(guān)的信息)。
  2. 在Xcode里躯喇,用你的發(fā)布證書打包你的代碼并簽名辫封。
  3. 用Xcode或Application Loader上傳你的App。
  4. 用iTunes Connect把你的App提交到AppStore廉丽,并且可以跟蹤審核狀態(tài)倦微。
  5. 等你的App審核通過(guò)后,再用iTunes Connect發(fā)布(設(shè)置用戶可以獲取的日期)正压。

蘋果開(kāi)發(fā)者計(jì)劃

蘋果開(kāi)發(fā)者計(jì)劃是為了讓個(gè)人和組織成為蘋果已知的開(kāi)發(fā)者欣福,用來(lái)開(kāi)發(fā)并發(fā)布App到the App Store, the Apple TV App Store, the Mac App Store, and outside of the Mac App Store。特點(diǎn):

  1. 加入費(fèi)用99美元一年
  2. 可訪問(wèn)account和iTunes Connect
  3. 最大UUID支持?jǐn)?shù):100
  4. 該計(jì)劃的開(kāi)發(fā)者分為個(gè)人和公司兩種:
  • 個(gè)人(Individual):協(xié)作人數(shù)為1人(開(kāi)發(fā)者自己)焦履⊥厝埃“個(gè)人”開(kāi)發(fā)者可以申請(qǐng)升級(jí)“公司”雏逾,可以通過(guò)撥打客服電話(400 6701 855)來(lái)咨詢和辦理。
  • 公司(Company):協(xié)作人數(shù)為多人(允許多個(gè)開(kāi)發(fā)者進(jìn)行協(xié)作開(kāi)發(fā)郑临,比個(gè)人多一些帳號(hào)管理的設(shè)置栖博,可設(shè)置多個(gè)Apple ID,分4種管理級(jí)別的權(quán)限)厢洞。申請(qǐng)時(shí)需要填寫公司的鄧白氏編碼(DUNS Number)仇让,這個(gè)可通過(guò)蘋果免費(fèi)申請(qǐng)。

蘋果開(kāi)發(fā)者企業(yè)計(jì)劃是為了讓組織可以開(kāi)發(fā)并發(fā)布企業(yè)版App躺翻,企業(yè)版App不能提交AppStore審核丧叽,直接發(fā)布給用戶安裝。特點(diǎn):

  1. 加入費(fèi)用299美元一年
  2. 可訪問(wèn)account公你,不能訪問(wèn)iTunes Connect
  3. 最大UUID支持?jǐn)?shù):不限制
  4. 協(xié)作人數(shù):多人
  5. 企業(yè)賬號(hào)開(kāi)發(fā)的應(yīng)用不能上線App Store踊淳,適合那些不希望公開(kāi)發(fā)布應(yīng)用的企業(yè)。同樣省店,申請(qǐng)時(shí)也需要公司的鄧白氏編碼(DUNS Number)嚣崭。

Code sign(簽名)

將你的App代碼簽名,可以讓操作系統(tǒng)識(shí)別誰(shuí)簽名了你的App懦傍,并且校驗(yàn)自你簽名以后你的App是否被修改過(guò)雹舀。簽名可以保護(hù)你App里的可執(zhí)行代碼,因?yàn)榭蓤?zhí)行代碼被改動(dòng)后簽名就失效了粗俱。注意说榆,資源文件,例如圖片和nib文件寸认,是不能被簽名的签财,所以可以被隨便改動(dòng)。

代碼簽名通過(guò)與App ID,provisioning profile, entitlements結(jié)合,確保了以下幾點(diǎn):

  • 你的App是被你或一個(gè)可信的團(tuán)隊(duì)成員構(gòu)建并簽名偏塞。
  • 被你或你的團(tuán)隊(duì)簽名的App只能運(yùn)行在指定的開(kāi)發(fā)設(shè)備中唱蒸。
  • 你的App只能運(yùn)行在你指定的測(cè)試設(shè)備中。
  • 你的App不能使用你未添加過(guò)的應(yīng)用服務(wù)灸叼。
  • 只有你可以上傳你的App構(gòu)建版本到 iTunes Connect神汹。
  • 一旦你選擇在AppStore外發(fā)布應(yīng)用(僅Mac應(yīng)用), 可以確保應(yīng)用不被其他人修改或重新發(fā)布。

Xcode在構(gòu)建App過(guò)程中會(huì)使用你的簽名標(biāo)識(shí)來(lái)簽名你的App古今。簽名標(biāo)識(shí)包含了蘋果發(fā)布的一對(duì)公鑰私鑰屁魏。這對(duì)公鑰私鑰存儲(chǔ)在你的鑰匙串(keychain)中,并且被加密算法用來(lái)生成簽名捉腥。在你的開(kāi)發(fā)者賬戶(accout)的證書里僅存放了公鑰氓拼。還需要一個(gè)中間證書存放到你的鑰匙串中,它用來(lái)確保你的證書是由一個(gè)證書機(jī)構(gòu)頒發(fā)的。

總之桃漾,簽名過(guò)程需要你的鑰匙串同時(shí)存放簽名標(biāo)識(shí)(公鑰私鑰)和中間證書坏匪。當(dāng)你安裝Xcode時(shí),蘋果的中間證書就被添加到你的鑰匙串中了呈队。你可以通過(guò)Xcode創(chuàng)建你的簽名標(biāo)識(shí)并簽名你的App剥槐。你的簽名標(biāo)識(shí)(私鑰部分)會(huì)被添加到鑰匙串,而相應(yīng)的證書(公鑰部分)則被添加到你的開(kāi)發(fā)者賬戶中宪摧。

Signing identities are used to sign your app or installer package. A development certificate identifies you, as a team member, in a development provisioning profile that allows apps signed by you to launch on devices. A distribution certificate identifies your team or organization in a distribution provisioning profile and allows you to submit your app to the store. Only a team agent or an admin can create a distribution certificate. You use the same development and distribution certificates for iOS, tvOS, and watchOS apps. You use different development and distribution certificates for Mac apps.

CSR文件(CodeSigningRequest)

CSR文件:生成證書的過(guò)程中,有一步是需要我們上傳CSR文件的颅崩。為什么必須要上傳它几于?CSR文件是用于換取證書文件(公鑰),導(dǎo)出CSR這個(gè)過(guò)程其實(shí)就是電腦向證書機(jī)構(gòu)申請(qǐng)憑證的過(guò)程沿后。證書是你用電腦制作的并且頒發(fā)給你的電腦的沿彭。但是這臺(tái)電腦是否具有制作證書的能力,就是要這個(gè)CSR文件來(lái)憑證尖滚。CSR從鑰匙串中導(dǎo)出喉刘,具體步驟為:打開(kāi)鑰匙串--鑰匙串訪問(wèn)--證書助理--從證書頒發(fā)機(jī)構(gòu)請(qǐng)求證書--填寫郵箱并保存到磁盤。

當(dāng)你的CSR文件創(chuàng)建時(shí)漆弄,一對(duì)公鑰和私鑰就自動(dòng)生成了睦裳。只不過(guò)私鑰存儲(chǔ)到了你的電腦上。在Mac上撼唾,它默認(rèn)存儲(chǔ)在登陸用戶的鑰匙串中廉邑,并且可以在“Keys”分類下查看。你正要請(qǐng)求的證書則包含了另一半--公鑰倒谷。申請(qǐng)到證書后蛛蒙,下載并雙擊.cer文件,將證書安裝到鑰匙串中渤愁,這樣你的電腦上就有了完整的一對(duì)公鑰私鑰牵祟。

Xcode會(huì)在項(xiàng)目編譯期間使用你的代碼簽名驗(yàn)證,這個(gè)驗(yàn)證是一個(gè)由Apple認(rèn)證過(guò)的公鑰-私鑰對(duì)組成抖格。既然私鑰是存在于我們本地電腦的鑰匙串中诺苹,而Xcode編譯需要公鑰和私鑰,那么豈不是說(shuō)這個(gè)證書申請(qǐng)下來(lái)他挎,只能我們自己的電腦能用嗎筝尾?當(dāng)然不是這樣,當(dāng)同事需要用測(cè)試證書進(jìn)行真機(jī)調(diào)試的時(shí)候办桨,我們可以通過(guò)導(dǎo)出p12給他們使用

p12文件

p12:又稱為個(gè)人信息交換證書筹淫。此證書實(shí)際包含了cer證書對(duì)應(yīng)的公鑰和本地鑰匙串對(duì)應(yīng)的私鑰信息。所以p12包含了公鑰私鑰,我們把p12分發(fā)給團(tuán)隊(duì)其他成員损姜,再配上相應(yīng)的配置文件饰剥,他們就可以正常使用了。

注意:cer文件沒(méi)有包含私鑰摧阅,所以別人的電腦上用此證書時(shí)找不到對(duì)應(yīng)私鑰汰蓉,從而使用不了。在導(dǎo)出p12的時(shí)候是點(diǎn)擊相應(yīng)的證書導(dǎo)出的


Certification(證書)

證書是對(duì)電腦開(kāi)發(fā)資格的認(rèn)證棒卷,每個(gè)開(kāi)發(fā)者帳號(hào)有一套顾孽,分為開(kāi)發(fā)證書和發(fā)布證書兩種。

  • Developer Certification(開(kāi)發(fā)證書)
    安裝在電腦上提供權(quán)限:開(kāi)發(fā)人員通過(guò)設(shè)備進(jìn)行真機(jī)測(cè)試比规。
    可以生成副本供多臺(tái)電腦安裝若厚;

  • Distribution Certification(發(fā)布證書)
    安裝在電腦上提供發(fā)布iOS程序的權(quán)限:開(kāi)發(fā)人員可以制做測(cè)試版(AdHoc)和發(fā)布版的程序。
    可以生成副本供多臺(tái)電腦安裝蜒什;

每種證書都有APNS版本测秸,需要關(guān)聯(lián)具體的AppId(是否支持推送是每個(gè)應(yīng)用具體的配置)。注意APNS版本包含了基礎(chǔ)證書灾常,Xcode只安裝一個(gè)APNS版本即可霎冯。

APNs證書均有有效期的限制,過(guò)期則無(wú)法繼續(xù)推送消息钞瀑。開(kāi)發(fā)證書/生產(chǎn)證書的有效期是1年沈撞。請(qǐng)務(wù)必在證書到期前重新上傳新證書,重新提供導(dǎo)出的p12給JAVA后臺(tái)仔戈,生成的pem給PHP后臺(tái)关串,以保證推送服務(wù)持續(xù)正常工作。


Provisioning Profile(授權(quán)文件)

授權(quán)文件是對(duì)設(shè)備如iPod Touch监徘、iPad晋修、iPhone的授權(quán),文件內(nèi)記錄的是設(shè)備的UDID和程序的AppId凰盔,即:使被授權(quán)的設(shè)備可以安裝或調(diào)試Bundle identifier與授權(quán)文件中記錄的AppId對(duì)應(yīng)的程序墓卦。

開(kāi)發(fā)者帳號(hào)在創(chuàng)建授權(quán)文件時(shí)候會(huì)選擇App Id,(開(kāi)發(fā)者帳號(hào)下App Id中添加户敬,單選)和UDID(開(kāi)發(fā)者帳號(hào)下Devices中添加最多100個(gè)落剪,多選)。
授權(quán)文件分為兩種尿庐,對(duì)應(yīng)相應(yīng)的證書使用:

1)Developer Provisioning Profile(開(kāi)發(fā)授權(quán)文件)

在裝有開(kāi)發(fā)證書或副本的電腦上使用忠怖,開(kāi)發(fā)人員選擇該授權(quán)文件通過(guò)電腦將程序安裝到授權(quán)文件記錄的設(shè)備中,即可進(jìn)行真機(jī)測(cè)試抄瑟。
注意:確保電腦有權(quán)限真機(jī)調(diào)試凡泣,即安裝了開(kāi)發(fā)證書或副本;在開(kāi)發(fā)工具中程序的Bundle identifier和選中使用的授權(quán)文件的App Id要一致;連接調(diào)試的設(shè)備的UDID在選中的授權(quán)文件中有記錄鞋拟。

2)Distribution Provisioning Profile(發(fā)布授權(quán)文件)

發(fā)布授權(quán)文件主要分為三種:

  • AdHoc:這個(gè)證書一般用在上線蘋果商店前最后一次的調(diào)試骂维,它所用是的證書和配置文件和正式上線商店時(shí)用的證書和配置文件是一樣的,他們的不同點(diǎn)在于贺纲,這個(gè)證書中指定了哪些蘋果設(shè)備(最多100)才能安裝此app航闺,所以一般公司就用打個(gè)AdHoc包,對(duì)設(shè)備上線前做最后一步測(cè)試

  • AppStore:正式發(fā)布到蘋果商店的證書猴誊,這個(gè)是我們上線時(shí)候用到最多的一種證書潦刃,這個(gè)證書打包出來(lái)的ipa包對(duì)安裝設(shè)備數(shù)量沒(méi)有限制

  • In House: 這個(gè)證書的創(chuàng)建選項(xiàng)現(xiàn)在的好像只能在企業(yè)賬號(hào)中才能看到,這個(gè)打包出來(lái)的app不能再蘋果商店上線稠肘,對(duì)安裝的設(shè)備數(shù)量也沒(méi)有限制福铅。這個(gè)可以借助一些三方平臺(tái)比如蒲公英、fire實(shí)現(xiàn)方便安裝(掃掃二維碼就能下載很方便的)项阴,當(dāng)然用工具iTools安裝也是可以的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市笆包,隨后出現(xiàn)的幾起案子环揽,更是在濱河造成了極大的恐慌,老刑警劉巖庵佣,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歉胶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡巴粪,警方通過(guò)查閱死者的電腦和手機(jī)通今,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)肛根,“玉大人辫塌,你說(shuō)我怎么就攤上這事∨烧埽” “怎么了臼氨?”我有些...
    開(kāi)封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)芭届。 經(jīng)常有香客問(wèn)我储矩,道長(zhǎng),這世上最難降的妖魔是什么褂乍? 我笑而不...
    開(kāi)封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任持隧,我火速辦了婚禮,結(jié)果婚禮上逃片,老公的妹妹穿的比我還像新娘屡拨。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布洁仗。 她就那樣靜靜地躺著层皱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赠潦。 梳的紋絲不亂的頭發(fā)上叫胖,一...
    開(kāi)封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音她奥,去河邊找鬼瓮增。 笑死,一個(gè)胖子當(dāng)著我的面吹牛哩俭,可吹牛的內(nèi)容都是我干的绷跑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼凡资,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼砸捏!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起隙赁,我...
    開(kāi)封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤垦藏,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后伞访,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體掂骏,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年厚掷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了弟灼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冒黑,死狀恐怖田绑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情薛闪,我是刑警寧澤辛馆,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站豁延,受9級(jí)特大地震影響昙篙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜诱咏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一苔可、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧袋狞,春花似錦焚辅、人聲如沸映屋。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)棚点。三九已至,卻和暖如春湾蔓,著一層夾襖步出監(jiān)牢的瞬間瘫析,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工默责, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贬循,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓桃序,卻偏偏與公主長(zhǎng)得像杖虾,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子媒熊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容