不知不覺(jué)開(kāi)發(fā)iOS應(yīng)用已經(jīng)有5年+了跪解,近期前同事問(wèn)我有沒(méi)有iOS應(yīng)用上架的相關(guān)文章,其實(shí)剛接觸iOS開(kāi)發(fā)的時(shí)候就寫(xiě)過(guò)iOS App上線提交流程,沒(méi)有推薦他使用骑丸,因?yàn)樵?018-06-07蘋(píng)果的開(kāi)發(fā)者工具系統(tǒng) iTunes Connect 已變更為 App Store Connect俺叭,后臺(tái)的管理頁(yè)面進(jìn)行了全面升級(jí)恭取,頁(yè)面布局發(fā)生了很大的改變。所以借著這個(gè)機(jī)會(huì)熄守,也花些時(shí)間整理下蜈垮,把近期蘋(píng)果更新內(nèi)容都補(bǔ)上,其實(shí)有的時(shí)候幫助別人的同時(shí)也在幫助自己裕照。言歸正傳攒发,我們今天介紹iOS應(yīng)用提交至蘋(píng)果審核的上架流程。
一晋南、蘋(píng)果手機(jī)安裝App的5種方式
1.手機(jī)連接蘋(píng)果電腦惠猿,用Xcode開(kāi)發(fā)工具直接運(yùn)行,即可安裝App负间;
2.開(kāi)發(fā)者用Ad-Hoc證書(shū)進(jìn)行分發(fā)測(cè)試偶妖,目前測(cè)試分發(fā)平臺(tái)有蒲公英和fir.im姜凄;需要收集用戶手機(jī)的UDID標(biāo)識(shí),每個(gè)賬號(hào)只有100個(gè)名額進(jìn)行測(cè)試趾访;
3.使用蘋(píng)果的TestFlight邀請(qǐng)碼進(jìn)行安裝測(cè)試态秧,需要登錄蘋(píng)果后臺(tái)增加測(cè)試用戶的郵箱,測(cè)試用戶需要在iOS手機(jī)客戶端下載 TestFlight扼鞋,然后進(jìn)入應(yīng)用輸入郵箱里面邀請(qǐng)碼進(jìn)行下載測(cè)試∮炝現(xiàn)在提交蘋(píng)果審核的應(yīng)用也會(huì)同步一份TestFlight進(jìn)行應(yīng)用的灰度測(cè)試;
4.使用企業(yè)版的In-House證書(shū)發(fā)布藏鹊,缺點(diǎn)是只允許企業(yè)內(nèi)部用戶使用润讥,不允許上線App Store,而且安裝還需要證書(shū)的授權(quán)盘寡,優(yōu)點(diǎn)是應(yīng)用迭代更新方便楚殿,不需要蘋(píng)果進(jìn)行審核。但是最近蘋(píng)果對(duì)企業(yè)的證書(shū)管理越來(lái)越嚴(yán)格了竿痰,如果有敏感的問(wèn)題脆粥,也會(huì)吊銷(xiāo)企業(yè)的開(kāi)發(fā)者賬號(hào)所屬權(quán);
5.直接導(dǎo)出應(yīng)用的IPA文件影涉,提交App Store進(jìn)行審核变隔,所有的蘋(píng)果手機(jī)都可以安裝應(yīng)用。
今天我們主要介紹第五種類(lèi)型蟹倾,也是開(kāi)發(fā)人員必須要掌握的匣缘。
二、應(yīng)用上架的后臺(tái)準(zhǔn)備
我們知道開(kāi)發(fā)iOS應(yīng)用鲜棠,是需要蘋(píng)果開(kāi)發(fā)者賬號(hào)來(lái)支撐的肌厨,目前蘋(píng)果開(kāi)發(fā)者賬號(hào)有 Individual 和 Company/Organization 兩種類(lèi)型。前者每年99美元豁陆,可以增加后臺(tái)應(yīng)用管理者柑爸,無(wú)法增加開(kāi)發(fā)者來(lái)管理證書(shū);后者每年299美元盒音,既可以增加后臺(tái)應(yīng)用管理者表鳍,也可以增加開(kāi)發(fā)者來(lái)管理證書(shū)。今天我們使用普通的個(gè)人開(kāi)發(fā)者賬號(hào)進(jìn)行描述祥诽。
首先登錄 蘋(píng)果開(kāi)發(fā)者官網(wǎng)
點(diǎn)擊Account譬圣,輸入開(kāi)發(fā)者賬號(hào)的用戶名和密碼,點(diǎn)擊確認(rèn)按鈕原押,進(jìn)行登錄胁镐,這里強(qiáng)調(diào)一下蘋(píng)果登錄的安全機(jī)制,現(xiàn)在后臺(tái)登錄需要開(kāi)啟雙重認(rèn)證機(jī)制诸衔,如果用其他人的開(kāi)發(fā)者賬號(hào)盯漂,登錄是非常麻煩的,還要?jiǎng)e人給你發(fā)送驗(yàn)證碼笨农,登錄成功后會(huì)提示你是否信任此瀏覽器嗎就缆?為了下次登錄方便,我們還是點(diǎn)擊信任谒亦,下次只要使用用戶名和密碼就可驗(yàn)證通過(guò)竭宰,不過(guò)瀏覽器的緩存時(shí)間失效后,還是需要雙重認(rèn)證才能登錄份招。
在iOS開(kāi)發(fā)和提交審核的時(shí)候要與蘋(píng)果的后臺(tái)打交道切揭,涉及到開(kāi)發(fā)證書(shū)Certificates、App ID锁摔、Devices及描述文件Profiles等相關(guān)知識(shí)廓旬,這里面有復(fù)雜的通信原理,涉及到非對(duì)稱加密谐腰、雙方的公鑰私鑰孕豹、摘要算法及數(shù)字簽名等內(nèi)容,這里不詳細(xì)說(shuō)明十气。
開(kāi)發(fā)證書(shū)(Certificates)
iOS 證書(shū)分為兩類(lèi):Development 和 Production(Distribution)励背。每個(gè)證書(shū)都有時(shí)間限制,一般一年就過(guò)期砸西。
iOS App Development 在開(kāi)發(fā)階段進(jìn)行真機(jī)測(cè)試時(shí)需要用到的證書(shū)叶眉。
iOS App Distribution 可以用于進(jìn)行 Ad-Hoc 測(cè)試、打包上傳到 App Store 或者打包成 Enterprisee(In-House) 類(lèi)型供企業(yè)內(nèi)部使用芹枷。
那么我們?nèi)绾紊暾?qǐng)證書(shū)呢竟闪,首先點(diǎn)擊證書(shū)、標(biāo)識(shí)及描述文件連接
然后我們點(diǎn)擊下圖的添加按鈕,創(chuàng)建一個(gè)證書(shū)
點(diǎn)擊Continue
這里需要一個(gè)申請(qǐng)證書(shū),格式為.certSigningRequest 里面包含公鑰和私鑰及摘要算法等相關(guān)內(nèi)容绿聘。
點(diǎn)擊mac OS的鑰匙串訪問(wèn)里的 證書(shū)助理 -> 從證書(shū)頒發(fā)機(jī)構(gòu)請(qǐng)求證書(shū)嗽上,最后會(huì)創(chuàng)建出一個(gè).certSigningRequest文件,保存到磁盤(pán)文件中熄攘,后面會(huì)用到兽愤。
輸入電子郵件,選擇存儲(chǔ)到磁盤(pán),點(diǎn)擊繼續(xù)浅萧,導(dǎo)出保存在磁盤(pán)的指定位置逐沙。
點(diǎn)擊continue,
開(kāi)發(fā)者證書(shū)就創(chuàng)建完成了洼畅,把它下載到本地吩案,進(jìn)行雙擊操作安裝,結(jié)果會(huì)在鑰匙串中顯示帝簇,這里多介紹一句徘郭,這個(gè)證書(shū)創(chuàng)建只能歸一個(gè)人擁有,如果你的團(tuán)隊(duì)伙伴也想用這個(gè)證書(shū)怎么辦丧肴,畢竟一個(gè)開(kāi)發(fā)者賬號(hào)創(chuàng)建的證書(shū)是有限的残揉,你需要將安裝的證書(shū)導(dǎo)出p12文件,然后設(shè)置密碼芋浮,分發(fā)給其他伙伴抱环,他們輸入密碼后就可以正常使用了。
至此開(kāi)發(fā)的證書(shū)就創(chuàng)建完畢途样,發(fā)布的證書(shū)也等同一樣江醇,區(qū)別是就在選擇證書(shū)的時(shí)候選擇發(fā)布就可以了。
App ID
我們知道開(kāi)發(fā)iOS的App何暇,需要一個(gè)App的唯一標(biāo)識(shí)Bundle ID陶夜,而App ID由 TeamID 和 Bundle ID 組合,表明這個(gè)App是獨(dú)一無(wú)二的裆站,現(xiàn)在我們需要手動(dòng)的創(chuàng)建一個(gè)App ID条辟,點(diǎn)擊增加按鈕
這里重點(diǎn)說(shuō)兩個(gè)內(nèi)容
1.設(shè)置Bundle ID? 內(nèi)容通常以反域名(reverse-domain-name)格式的 Company Identifier(Company ID)作為前綴? 例如:com.baidu.map 地圖App。
它目前有兩種類(lèi)型
Explicit App ID:唯一的 App ID宏胯,用于唯一標(biāo)識(shí)一個(gè)應(yīng)用程序羽嫡。
Wildcard App ID:含有通配符的 App ID,用于標(biāo)識(shí)一組應(yīng)用程序肩袍。
2.Capabilities: App ID的權(quán)限設(shè)置? 向組應(yīng)用杭棵,開(kāi)啟后臺(tái)服務(wù),消息推送氛赐,內(nèi)購(gòu).....配置好App所需要的權(quán)限后點(diǎn)擊Continue-->Register 即可完成App ID的創(chuàng)建魂爪。
Devices
Devices 就是運(yùn)行 iOS 系統(tǒng)用于開(kāi)發(fā)調(diào)試 App 的設(shè)備。每臺(tái) Apple 設(shè)備使用 UDID (Unique Device Identifier)來(lái)唯一標(biāo)識(shí)艰管。
iOS 設(shè)備連接 Mac 后滓侍,可通過(guò) iTunes->Summary 或者 Xcode->Window->Devices 查看其 UDID。
Apple Member Center 網(wǎng)站個(gè)人賬號(hào)下的 Devices 中包含了注冊(cè)過(guò)的所有可用于開(kāi)發(fā)和測(cè)試的設(shè)備牲芋,普通個(gè)人開(kāi)發(fā)賬號(hào)每年累計(jì)最多只能注冊(cè)100個(gè)設(shè)備撩笆。
點(diǎn)擊增加按鈕捺球,增加用戶設(shè)備的UDID,方便用戶后期進(jìn)行測(cè)試
輸入設(shè)備的標(biāo)識(shí)夕冲,這里要詳情記錄用戶的別名氮兵,方便后期管理和維護(hù),畢竟名額只有100個(gè)耘擂。輸入完設(shè)備名稱和UDID ,點(diǎn)擊Continue胆剧,即增加完成絮姆。
描述文件(Provisioning Profiles)
Provisioning Profile 文件包含了上述的所有內(nèi)容:Certificates醉冤、App ID 和 Devices。
申請(qǐng)Development描述文件
點(diǎn)擊增加創(chuàng)建篙悯,創(chuàng)建開(kāi)發(fā)的描述文件
選擇iOS App Decelopment描述文件蚁阳,點(diǎn)擊Continue
選擇剛剛創(chuàng)建的App ID,繼續(xù)點(diǎn)擊Continue
選擇剛剛創(chuàng)建的Certificates鸽照,如果想下載開(kāi)發(fā)的描述文件就選擇開(kāi)發(fā)證書(shū)螺捐,如果是發(fā)布的描述文件,就選擇發(fā)布即可矮燎,繼續(xù)點(diǎn)擊Continue定血,選擇設(shè)備ID信息
選擇Select All,包含所以設(shè)備信息诞外,點(diǎn)擊Continue
輸入描述文件名稱澜沟,一般格式為dev+App ID+時(shí)間命名即可,方便后期管理文件峡谊,文件的有效期為一年茫虽,過(guò)期后再次創(chuàng)建即可,繼續(xù)點(diǎn)擊General既们。
點(diǎn)擊Download濒析,下載雙擊安裝即可。
下面我們介紹一下應(yīng)用如何上傳至App Store啥纸。
三号杏、App Store Connect管理App的信息
一般先登錄開(kāi)發(fā)者后臺(tái),選擇App Store Connect斯棒,去用戶管理和訪問(wèn)的頁(yè)面
選擇用戶和訪問(wèn)盾致,再選擇我的App,進(jìn)入我的App管理頁(yè)面
新建一個(gè)后臺(tái)的App的描述配置名船,點(diǎn)擊新建 App
SKU Number:Stock Keeping Unit绰上,貨號(hào)。如果你有很多應(yīng)用渠驼,給每一個(gè)應(yīng)用指定一個(gè)唯一的貨號(hào)會(huì)方便你管理應(yīng)用庫(kù)蜈块。你可以用數(shù)字或者字母隨便指定你的貨號(hào)。
SKU:一個(gè)獨(dú)特的、不會(huì)在 App Store 中顯示的 App ID百揭。自己可以自己定義爽哎。有人認(rèn)為SKU主要去區(qū)分自己賬戶下邊不同的APP。
不過(guò)還是建議使用項(xiàng)目中的Xcode中的 Bundle Identifier器一。
輸入平臺(tái)课锌、App的主要語(yǔ)言、套件ID就是應(yīng)用的Bundle ID祈秕、SKU渺贤、用戶訪問(wèn)權(quán)限控制,點(diǎn)擊創(chuàng)建即可请毛。
查看App的相關(guān)信息志鞍,可以編輯后臺(tái)管理的App名稱
點(diǎn)擊iOS App導(dǎo)航的欄目,上傳應(yīng)用的截圖方仿,方便在App Store中查看固棚。
輸入宣傳文本,介紹App在當(dāng)前版本更新的內(nèi)容是什么仙蚜,描述是介紹App是干什么的此洲,有什么用途,關(guān)鍵詞是便于用戶能搜索到委粉。
這里最重要的就是構(gòu)建版本呜师,就是你開(kāi)發(fā)的應(yīng)用,用Xcode導(dǎo)出的IPA文件艳丛,最終要提交到App Store中匣掸,在構(gòu)建版本中出現(xiàn)+號(hào)后,即有可構(gòu)建的版本氮双,那么你的應(yīng)用上架流程就快接近尾聲了碰酝。
四、如何構(gòu)建iOS應(yīng)用的IPA文件
如何將打包好的IPA文件提交至App Store中審核戴差,這里需要一個(gè)重要的蘋(píng)果開(kāi)發(fā)工具送爸,Xcode,假設(shè)你現(xiàn)在已經(jīng)有開(kāi)發(fā)完成的App項(xiàng)目暖释,本地的Bundle ID配置也是對(duì)的袭厂,工具欄中我們選擇Generic iOS Device,這里我們就不需要連接真機(jī)進(jìn)行構(gòu)建了球匕。然后點(diǎn)擊Product纹磺,選擇Archive開(kāi)始構(gòu)建發(fā)布版本。
構(gòu)建成功后亮曹,會(huì)彈出如下窗口:選擇剛剛構(gòu)建成功的應(yīng)用橄杨,選擇Distribute App按鈕
選擇iOS App Store秘症,點(diǎn)擊Next
選擇Export導(dǎo)出,繼續(xù)點(diǎn)擊Next
下面有兩種簽名式矫,一個(gè)是自動(dòng)簽名乡摹,另一個(gè)是手動(dòng)簽名,本地只要有證書(shū)采转,就可以選擇自動(dòng)簽名聪廉,系統(tǒng)工具會(huì)幫你創(chuàng)建描述文件進(jìn)行簽名,如果是手動(dòng)簽名故慈,需要本地有證書(shū)和描述文件板熊,需要手動(dòng)選擇即可。
選擇對(duì)應(yīng)的證書(shū)和描述文件惯悠,點(diǎn)擊Next
描述了相關(guān)的信息邻邮,點(diǎn)擊Export竣况,即可導(dǎo)出對(duì)應(yīng)App的IPA文件到指定的目錄克婶。
至此iOS的App的IPA文件我們就導(dǎo)出來(lái)了,是經(jīng)過(guò)簽名的丹泉,那么我們?nèi)绾螌?yīng)用文件提交至蘋(píng)果審核呢情萤?其實(shí)需要使用Xcode自帶Applocation Loader工具。
五摹恨、Applocation Loader提交IPA文件至App Store審核
需要手動(dòng)的輸入開(kāi)發(fā)者賬號(hào)的用戶名和密碼筋岛,這里強(qiáng)調(diào)一個(gè)事情,即使你的賬號(hào)和密碼輸入正確晒哄,蘋(píng)果還讓你用簽名的密碼去登錄睁宰,那密碼怎么簽名呢,下面慢慢介紹寝凌。
需要我們到Apple ID的官網(wǎng)登錄柒傻,使用Apple ID和密碼進(jìn)行登錄,而且還要雙重認(rèn)證较木,這個(gè)安全驗(yàn)證也是最近蘋(píng)果才更新的红符,感覺(jué)確實(shí)麻煩。
登錄成功后伐债,查看安全预侯,點(diǎn)擊App 專用密碼的生成密碼,將生成的密碼復(fù)制到Applocation Loader的登錄頁(yè)面進(jìn)行登錄即可峰锁。
選擇剛剛導(dǎo)出的IPA文件進(jìn)行上傳萎馅,后面點(diǎn)擊下一步,至最后提交到App Store中即可虹蒋。
提交成功后糜芳,一般要等10分鐘左右拣技,蘋(píng)果機(jī)器檢查完后,結(jié)果會(huì)用郵件進(jìn)行通知耍目,如果成功了膏斤,你就可以去開(kāi)發(fā)者后臺(tái)管理頁(yè)面,上傳構(gòu)建成功的版本邪驮,點(diǎn)擊發(fā)布就行了莫辨。到這里整個(gè)的上線App的上架流程就介紹完了,其實(shí)內(nèi)容還是比較多的毅访。
最后我們?cè)诳偨Y(jié)回顧一下核心內(nèi)容
1.蘋(píng)果手機(jī)安裝App的五種方式沮榜;
2.介紹證書(shū)、App ID喻粹、Devices及Profiles的相關(guān)內(nèi)容蟆融;
3.App Store Connect后臺(tái)管理App的信息;
4.將iOS應(yīng)用導(dǎo)出IAP文件守呜;
5.將應(yīng)用的IPA文件提交到App Store中進(jìn)行審核型酥。
如果大家有什么問(wèn)題也可留言,我會(huì)抽時(shí)間與你們一起討論查乒,大家相互學(xué)習(xí)弥喉。