最新上架 App Store 全流程

作者:程序員大咖
時(shí)間:2023-01-17
2455
過(guò)完年回來(lái)app上架到App Store,雖然之前上架過(guò),還是遇到不少坑,特別是配置證書(shū)的時(shí)候,還好是上架是一次性通過(guò),整理一份詳細(xì)圖文詳解。項(xiàng)目是flutter項(xiàng)目上架到App Store,與原始的iOS上架還是有些差別。

前言

過(guò)完年回來(lái)app上架到App Store,雖然之前上架過(guò),還是遇到不少坑,特別是配置證書(shū)的時(shí)候,還好是上架是一次性通過(guò),整理一份詳細(xì)圖文詳解。項(xiàng)目是flutter項(xiàng)目上架到App Store,與原始的iOS上架還是有些差別。

環(huán)境

macOS 10.15.7

Flutter 2.0.6

Xcode Version 12.4

vscode

Apple Developer 配置

d eveloper.apple.com  點(diǎn)擊“Account”欄目

微信圖片_20230117111345.jpg

如果該App需要多人協(xié)作開(kāi)發(fā),請(qǐng)進(jìn)入People進(jìn)入人員編輯。注意負(fù)責(zé)上架AppStore的人員需要有管理級(jí)別的權(quán)限

然后點(diǎn)擊 Certificates, Identifiers  &  Profiles 圖標(biāo)

微信圖片_20230117111356.jpg

1. Certificates:證書(shū)

Certificates作用是為Mac電腦提供開(kāi)發(fā)能力,具有Certificates的Mac電腦能夠真機(jī)調(diào)試、打包、上架APP到app store。

微信圖片_20230117111359.jpg

Certificates有兩種環(huán)境:開(kāi)發(fā)( Development )環(huán)境生產(chǎn)( Distribution )環(huán)境。Certificates還有兩種類型:Software 和 Services。

簡(jiǎn)單理解:

(1).開(kāi)發(fā)環(huán)境(Development):直接用Xcode調(diào)試debug就屬于開(kāi)發(fā)環(huán)境,在模擬器上debug是不需要Certificates的。但是在真機(jī)上調(diào)試運(yùn)行就需要Certificates開(kāi)發(fā)證書(shū),發(fā)布到APP Store 需要 Certificates 生產(chǎn)證書(shū)。

(2).生產(chǎn)環(huán)境(Distribution):上架app store,打包生成ipa包等都屬于生產(chǎn)環(huán)境。只要是通過(guò)Archive生成都都是屬于生產(chǎn)環(huán)境。

(3). Software: 使mac具有相應(yīng)的開(kāi)發(fā)和發(fā)布能力,一臺(tái)Mac只需要建立一套即可。

(4). Services: Apple提供的額外服務(wù),最常見(jiàn)的就是消息推送服務(wù),會(huì)針對(duì)不同的App建立不同的Services Certificates,畢竟每個(gè)app需要的Services不同。

針對(duì)Software部分需要注意:

Certificates是對(duì)Mac電腦有效的,是根據(jù)Mac的CSR請(qǐng)求證書(shū)創(chuàng)建的,而不是對(duì)app,所以Certificates的開(kāi)發(fā)(Development)證書(shū)和發(fā)布(Distribution)證書(shū)是有數(shù)量限制的。超過(guò)數(shù)量就不能再創(chuàng)建了,除非刪除已有的證書(shū)。

只要你這個(gè)Mac電腦擁有了Certificates證書(shū),就能用申請(qǐng)Certificates的賬號(hào)在這個(gè)Mac上開(kāi)發(fā)多個(gè)app而不需要再重新申請(qǐng)Certificates。所以正確操作是,對(duì)一個(gè)Mac電腦,只需要申請(qǐng)一套Certificates就好了,在創(chuàng)建第二個(gè)第三app時(shí)不需要再去創(chuàng)建一套Certificates。

Services的證書(shū)是需要另外創(chuàng)建的,而且沒(méi)有數(shù)量限制,但是還是建議只用一臺(tái)Mac創(chuàng)建就好,他人合作導(dǎo)出 p12文件給對(duì)方Mac安裝即可。

Software和Services都是和Mac綁定的:

Certificates是和Mac綁定的,不能直接copy給其他Mac使用,但是Certificates可以導(dǎo)出 p12給其他Mac電腦用的,導(dǎo)出的 p12同樣具有測(cè)試打包和發(fā)布的能力。如果多人協(xié)同開(kāi)發(fā),第二個(gè)Mac也是不需要再去申請(qǐng)一套Certificates的。用他人Mac電腦上Certificates導(dǎo)出的 p12文件安裝上即可。

Certificates:證書(shū)

(1) 通過(guò)Mac鑰匙串管理工具生成CSR請(qǐng)求文件,用于申請(qǐng)Certificates,與Certificates綁定

微信圖片_20230117111408.jpg微信圖片_20230117111411.jpg

這里需要注意,不要選中證書(shū)列表中的某個(gè)證書(shū),否則菜單就不是這個(gè)。

微信圖片_20230117111434.jpg郵箱地址填一個(gè),選擇存儲(chǔ)到磁盤,會(huì)正常一個(gè) certSigningRequest文件,重命名一下,便于識(shí)別。

(2) 申請(qǐng)開(kāi)發(fā)Development證書(shū) 先創(chuàng)建software部分,再創(chuàng)建推送證書(shū)部分。

選擇iOS Development ,創(chuàng)建iOS Development 開(kāi)發(fā)證書(shū)。Xcode11以上可以創(chuàng)建Apple Development 證書(shū).

微信圖片_20230117111438.jpg

continue 下一步

微信圖片_20230117111442.jpg

選擇剛剛的證書(shū)文件,

微信圖片_20230117111445.jpg

下載下來(lái),名稱是 development.cer, 如果是選擇了iOS App Development 證書(shū)則名稱是 ios  development.cer,最好改一下名稱,方便識(shí)別。

然后雙擊按鈕,打開(kāi)鑰匙串管理工具,在我的證書(shū) 就能看到安裝了,需要注意的是現(xiàn)實(shí)的名稱 不是文件名,是你開(kāi)發(fā)者賬號(hào)的個(gè)人team名稱,里面的秘鑰名稱就是你剛剛填寫的名稱

640.jpg微信圖片_20230117111451.jpg

(3) 申請(qǐng)iOS Distribution (App Store and Ad Hoc)生產(chǎn)證書(shū)

方法與上面一樣,只是選擇的時(shí)候選iOS Distribution (App Store and Ad Hoc)類型

微信圖片_20230117111454.jpg

然后上傳CSR文件,Register,Download, 該名稱。

(4) 推送證書(shū)申請(qǐng)

推送證書(shū)的申請(qǐng)與第二部分是一樣的,只是中間會(huì)讓選擇證書(shū)綁定的App id。(這里需要先創(chuàng)建Identifiers,查看步驟2.Identifiers:App 身份證) 同樣,需要申請(qǐng)Development和Distribution兩種環(huán)境。

微信圖片_20230117111458.jpg微信圖片_20230117111503.jpg

選擇Mac鑰匙串工具導(dǎo)出的 certSigningRequest文件,與這臺(tái)Mac綁定。

微信圖片_20230117111507.jpg

2.Identifiers:App id

iOS每個(gè)APP都有自己唯一的身份證(Identifiers)。app的身份證就在這里申請(qǐng),也就是app的唯一標(biāo)識(shí)。

微信圖片_20230117111511.jpg

填寫app描述,和Bundle ID

關(guān)于Bundle ID:十分重要的東西,可以理解為app的身份證號(hào)碼。所有app都是唯一的。為了避免重復(fù)和辨識(shí),一般都采用反域名的格式+app名稱。

如圖所示。這里一經(jīng)申請(qǐng)變無(wú)法更改,在每個(gè)項(xiàng)目建立時(shí)就應(yīng)該事先定義好app的Bundle ID。Bundle ID除了這里申請(qǐng)app需要用到以外,在申請(qǐng)第三方服務(wù):如微信登陸、友盟推送、google服務(wù)等等都需要使用到Bundle ID與你的app綁定。所以,Bundle ID非常重要。

一般,我們會(huì)采用Explicit(明確的)Bundle ID標(biāo)識(shí),而不會(huì)采用Wildcard(通配符)來(lái)定義Bundle ID。如果采用了,會(huì)導(dǎo)致推送這部分是沒(méi)用的。

然后Register,回到 identifiers列表頁(yè)可以看到剛剛創(chuàng)建的。

3.Devices: 設(shè)備列表

app的每個(gè)設(shè)備都有唯一的udid。將udid加入到Devices列表后,這些設(shè)備具有debug測(cè)試和ad hoc安裝能力。

反正,需要測(cè)試的iPhone,iPad都需要加入到這個(gè)列表里面。

Devices設(shè)備列表是針對(duì)開(kāi)發(fā)者賬號(hào),所以也只需要添加一次。

如何查看設(shè)備的udid。有很多方法,

1.Xcode查看(開(kāi)發(fā)者查看自己的)

微信圖片_20230117111622.jpg微信圖片_20230117111626.jpg

2.用蒲公英 www.pgyer.com / tools / udid 

添加設(shè)備列表

微信圖片_20230117111559.jpg微信圖片_20230117111602.jpg

4.Profiles: 描述文件

描述文件Profiles將team、Identifiers、Certificates、Devices等信息聯(lián)系起來(lái)。

Profiles同樣分為兩種環(huán)境:開(kāi)發(fā)(Development)環(huán)境發(fā)布(Distribution)環(huán)境,不同的環(huán)境需建立不同的描述文件Profiles。

描述文件是這對(duì)app綁定的,所以每個(gè)APP都會(huì)建立相應(yīng)的一套描述文件。但是描述文件可copy給其他Mac使用,但是對(duì)于的Mac需要安裝相應(yīng)的Certificates導(dǎo)出的 p12文件。

創(chuàng)建描述文件

將上面創(chuàng)建的所有信息聯(lián)系起來(lái),供xcode使用。同樣分別創(chuàng)建Development和Distribution兩種環(huán)境的描述文件

微信圖片_20230117111607.jpg

選擇App ID

微信圖片_20230117111610.jpg選擇對(duì)應(yīng)的 certificates證書(shū),開(kāi)發(fā)對(duì)應(yīng)開(kāi)發(fā),生產(chǎn)對(duì)應(yīng)生產(chǎn),注意是當(dāng)前項(xiàng)目的證書(shū),不要選擇其他項(xiàng)目的證書(shū)。

開(kāi)發(fā)環(huán)境和Ad Hoc需要選擇需要測(cè)試的Devices設(shè)備,選中的Devices才具有測(cè)試和安裝能力。全選即可。

微信圖片_20230117111614.jpg

然后下載,重命名。描述文件不需要安裝

微信圖片_20230117111618.jpg

至此所有準(zhǔn)備的證書(shū)和描述文件都創(chuàng)建完畢。

5.Xcode配置

(1)登錄Xcode開(kāi)發(fā)者賬號(hào),這一步容易忘記,特別是新的蘋果賬號(hào),當(dāng)然也可以到里面選擇證書(shū)再配置

微信圖片_20230117111622.jpg微信圖片_20230117111626.jpg

(2) 配置證書(shū)及簽名 首先需要取消Automatically manage signing。否則是XCode自動(dòng)管理證書(shū),會(huì)自動(dòng)創(chuàng)建證書(shū)和bundle id等。這樣會(huì)不利于證書(shū)管理。我這里就采坑了,導(dǎo)致自動(dòng)安裝了其他的證書(shū),導(dǎo)致生產(chǎn)證書(shū)  Xcode Signing certificate is invalid when build on ext device 只好到鑰匙串中刪除,剛剛自動(dòng)按鈕的證書(shū),退出Xcode,重新打開(kāi)就可以了。配置profile描述文件,需要為debug和release兩種環(huán)境分別配置描述文件。選擇3.6章節(jié)里創(chuàng)建的對(duì)應(yīng)的描述文件,debug對(duì)應(yīng)development, release對(duì)應(yīng)Distribution。

微信圖片_20230117111629.jpg

provisonint Profile 文件選擇,開(kāi)發(fā)對(duì)應(yīng)著開(kāi)發(fā),生產(chǎn)對(duì)應(yīng)著生產(chǎn)。

微信圖片_20230117111632.jpg

此處可能會(huì)有個(gè)小坑,與鑰匙串安裝的cer 不對(duì)應(yīng),Buuld Settings 重新選擇一下就可以了

微信圖片_20230117111637.jpg

調(diào)試 一個(gè)是模擬器調(diào)試 一個(gè)真機(jī)調(diào)試(數(shù)據(jù)線連上蘋果手機(jī))

微信圖片_20230117111640.jpg

6.App Connnect 注冊(cè)APP

微信圖片_20230117111643.jpg微信圖片_20230117111647.jpg

套裝ID 就是申請(qǐng)的indentifiers,選擇

微信圖片_20230117111650.jpg

填寫App資料,需要注意幾點(diǎn):

APP圖標(biāo)時(shí),圖標(biāo)中不能包含alpha通道或者透明度;LanchImage的圖片格式只能是png格式,jpg格式Xcode無(wú)法加載成功;填寫聯(lián)系人的時(shí)候,需要加區(qū)號(hào),比如中國(guó) 需要+86;App預(yù)覽與截屏圖片,需要6.5英寸和5.5英寸就行,UI設(shè)計(jì)圖的時(shí)候:5.5英寸 1242?×?2208 ;6.5英寸 1242?×?2688

7.多人協(xié)作開(kāi)發(fā)證書(shū)管理

(1)多臺(tái)Mac運(yùn)行相同iOS項(xiàng)目。

是與生成csr的mac電腦綁定的,其他的Mac 電腦無(wú)法安裝,這樣其他的Mac電腦就無(wú)法真機(jī)測(cè)試打包這個(gè)iOS項(xiàng)目了。但是,我們可以在鑰匙串中導(dǎo)出 p12文件給其他的Mac安裝,安裝后這臺(tái)Mac也具有同樣打包測(cè)試發(fā)布能了。開(kāi)發(fā)需要導(dǎo)入developer證書(shū),發(fā)布需要導(dǎo)出Distribution證書(shū)。選擇對(duì)應(yīng)的證書(shū),導(dǎo)出

微信圖片_20230117111654.jpg

最好重新命名方便識(shí)別。 p12文件其實(shí)就加密的 cer證書(shū)??梢詂opy給其他Mac安裝。

第二臺(tái)Mac安裝 p12后,進(jìn)行第四章的XCode配置后即可具有開(kāi)發(fā)、測(cè)試、發(fā)布iOS的能力

(2)多人多臺(tái)Mac開(kāi)發(fā)相同ios項(xiàng)目 如果不方便把開(kāi)發(fā)者賬號(hào)和密碼給其他人用,需要把對(duì)應(yīng)開(kāi)發(fā)人員加入到 開(kāi)發(fā)者成員中。

微信圖片_20230117111657.jpg

隨后新用戶會(huì)收到一封邀請(qǐng)郵件,同意后即會(huì)加入開(kāi)發(fā)者計(jì)劃中。新用戶登陸蘋果開(kāi)發(fā)者中心,會(huì)看到自己加入的team

新用戶用剛剛導(dǎo)出 p12文件在Xcode上配置就可以協(xié)同開(kāi)發(fā)ios項(xiàng)目。

8.APP打包上架

(1)打包并上傳IPA包 首先確保證書(shū)正確、profile描述文件正確。

微信圖片_20230117111708.jpg

需要注意的是build構(gòu)建號(hào) 每次都是唯一的,version為版本號(hào),多個(gè)版本號(hào)可以屬于同一個(gè)version,

微信圖片_20230117111711.jpg

flutter項(xiàng)目也可以直接 改pubspec.yaml文件 version字段 如:1.0.0+1

設(shè)備選擇:

微信圖片_20230117111714.jpg

flutter項(xiàng)目需要注意:需要執(zhí)行 flutter build ios --  release --  no - codesign,需要注意的是是在flutter外層目錄路徑下執(zhí)行,而不是ios目錄路徑,(我習(xí)慣在vscode中跑命令)

Product   >  Archive:

微信圖片_20230117111718.jpg

直接Distribute App (如果不放心可以先Validate App)

微信圖片_20230117111723.jpg

進(jìn)入Select a method of distribution(打包方式選擇)界面:

App Store:App Store上架包用

Ad hoc:發(fā)布測(cè)試包用,如蒲公英發(fā)布

Enterprise:企業(yè)包用

Development:開(kāi)發(fā)包用

根據(jù)自己的證書(shū)和描述文件選擇,在這里選擇App Store,點(diǎn)擊Next

微信圖片_20230117111727.jpg

Select a destination : 選擇是直接上傳還是導(dǎo)出,直接上傳就可以

Select certificate and iOS App Store profile: 之前創(chuàng)建的描述文件

然后等待上傳

上傳成功之后,需要進(jìn)入 App Store Connect, 看到

微信圖片_20230117111732.jpg看到剛剛提交的版本,然后點(diǎn)擊App Store ,如果第一次發(fā)版,直接在 “構(gòu)建版本” 選擇對(duì)應(yīng)的版本文件,如果是已經(jīng)上架成功,需要更新版本

微信圖片_20230117111736.jpg

填寫完整的信息,提交審核。

上架之后App Store還搜索不到APP如何下載體驗(yàn)

如果已經(jīng)上架,但是App Store還搜索不到APP,剛剛通過(guò)的需要等24小時(shí),可以去「七麥數(shù)據(jù)」查看

微信圖片_20230117111739.jpg微信圖片_20230117111743.jpg
文章來(lái)源:程序員大咖
版權(quán)說(shuō)明:本文內(nèi)容來(lái)自于程序員大咖,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
法院推翻裁決,蘋果在巴西暫時(shí)不用開(kāi)放App Store
法院推翻裁決,蘋果在巴西暫時(shí)不用開(kāi)放App Store
今年11月,巴西監(jiān)管機(jī)構(gòu)裁決蘋果不得阻止開(kāi)發(fā)者在巴西App Store外部分發(fā)應(yīng)用,要求蘋果在20天內(nèi)允許使用替代支付系統(tǒng)和側(cè)載,否則將面臨每天25萬(wàn)雷亞爾(當(dāng)前約30.2萬(wàn)元)的罰款。
App Store
巴西市場(chǎng)
蘋果
2024-12-11
蘋果提醒開(kāi)發(fā)者:臨近圣誕節(jié),App Store應(yīng)用審核時(shí)間可能延長(zhǎng)
蘋果提醒開(kāi)發(fā)者:臨近圣誕節(jié),App Store應(yīng)用審核時(shí)間可能延長(zhǎng)
蘋果公司今日通知開(kāi)發(fā)者,隨著圣誕節(jié)的臨近,App Store的審核時(shí)間可能會(huì)增加。蘋果建議開(kāi)發(fā)者開(kāi)始更新他們的應(yīng)用程序和游戲,為假日季做好準(zhǔn)備。
App Store
開(kāi)發(fā)者
蘋果
2024-12-05
ASO必讀:影響應(yīng)用商店中App排名的關(guān)鍵因素
ASO必讀:影響應(yīng)用商店中App排名的關(guān)鍵因素
在當(dāng)今數(shù)字化時(shí)代,應(yīng)用已成為我們生活中不可或缺的一部分。應(yīng)用商店中有數(shù)以百萬(wàn)計(jì)的應(yīng)用程序,對(duì)于應(yīng)用開(kāi)發(fā)者來(lái)說(shuō),了解影響其應(yīng)用排名的因素至關(guān)重要。
ASO
App
應(yīng)用商店
2024-11-07
歐盟地區(qū)App Store商業(yè)應(yīng)用開(kāi)發(fā)者,即日起需提供交易者身份資訊
歐盟地區(qū)App Store商業(yè)應(yīng)用開(kāi)發(fā)者,即日起需提供交易者身份資訊
應(yīng)對(duì)歐盟頒布的《數(shù)字服務(wù)法》,Apple要求在歐盟App Store發(fā)布應(yīng)用程序的開(kāi)發(fā)者必須提供交易者(Trader)身份資訊。
App Store
開(kāi)發(fā)者
2024-10-23
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家