最新上架 App Store 全流程

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

前言

過完年回來app上架到App Store,雖然之前上架過,還是遇到不少坑,特別是配置證書的時候,還好是上架是一次性通過,整理一份詳細圖文詳解。項目是flutter項目上架到App Store,與原始的iOS上架還是有些差別。

環(huán)境

macOS 10.15.7

Flutter 2.0.6

Xcode Version 12.4

vscode

Apple Developer 配置

d eveloper.apple.com  點擊“Account”欄目

微信圖片_20230117111345.jpg

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

然后點擊 Certificates, Identifiers  &  Profiles 圖標

微信圖片_20230117111356.jpg

1. Certificates:證書

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

微信圖片_20230117111359.jpg

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

簡單理解:

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

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

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

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

針對Software部分需要注意:

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

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

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

Software和Services都是和Mac綁定的:

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

Certificates:證書

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

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

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

微信圖片_20230117111434.jpg郵箱地址填一個,選擇存儲到磁盤,會正常一個 certSigningRequest文件,重命名一下,便于識別。

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

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

微信圖片_20230117111438.jpg

continue 下一步

微信圖片_20230117111442.jpg

選擇剛剛的證書文件,

微信圖片_20230117111445.jpg

下載下來,名稱是 development.cer, 如果是選擇了iOS App Development 證書則名稱是 ios  development.cer,最好改一下名稱,方便識別。

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

640.jpg微信圖片_20230117111451.jpg

(3) 申請iOS Distribution (App Store and Ad Hoc)生產(chǎn)證書

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

微信圖片_20230117111454.jpg

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

(4) 推送證書申請

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

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

選擇Mac鑰匙串工具導出的 certSigningRequest文件,與這臺Mac綁定。

微信圖片_20230117111507.jpg

2.Identifiers:App id

iOS每個APP都有自己唯一的身份證(Identifiers)。app的身份證就在這里申請,也就是app的唯一標識。

微信圖片_20230117111511.jpg

填寫app描述,和Bundle ID

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

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

一般,我們會采用Explicit(明確的)Bundle ID標識,而不會采用Wildcard(通配符)來定義Bundle ID。如果采用了,會導致推送這部分是沒用的。

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

3.Devices: 設備列表

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

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

Devices設備列表是針對開發(fā)者賬號,所以也只需要添加一次。

如何查看設備的udid。有很多方法,

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

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

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

添加設備列表

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

4.Profiles: 描述文件

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

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

描述文件是這對app綁定的,所以每個APP都會建立相應的一套描述文件。但是描述文件可copy給其他Mac使用,但是對于的Mac需要安裝相應的Certificates導出的 p12文件。

創(chuàng)建描述文件

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

微信圖片_20230117111607.jpg

選擇App ID

微信圖片_20230117111610.jpg選擇對應的 certificates證書,開發(fā)對應開發(fā),生產(chǎn)對應生產(chǎn),注意是當前項目的證書,不要選擇其他項目的證書。

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

微信圖片_20230117111614.jpg

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

微信圖片_20230117111618.jpg

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

5.Xcode配置

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

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

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

微信圖片_20230117111629.jpg

provisonint Profile 文件選擇,開發(fā)對應著開發(fā),生產(chǎn)對應著生產(chǎn)。

微信圖片_20230117111632.jpg

此處可能會有個小坑,與鑰匙串安裝的cer 不對應,Buuld Settings 重新選擇一下就可以了

微信圖片_20230117111637.jpg

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

微信圖片_20230117111640.jpg

6.App Connnect 注冊APP

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

套裝ID 就是申請的indentifiers,選擇

微信圖片_20230117111650.jpg

填寫App資料,需要注意幾點:

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

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

(1)多臺Mac運行相同iOS項目。

是與生成csr的mac電腦綁定的,其他的Mac 電腦無法安裝,這樣其他的Mac電腦就無法真機測試打包這個iOS項目了。但是,我們可以在鑰匙串中導出 p12文件給其他的Mac安裝,安裝后這臺Mac也具有同樣打包測試發(fā)布能了。開發(fā)需要導入developer證書,發(fā)布需要導出Distribution證書。選擇對應的證書,導出

微信圖片_20230117111654.jpg

最好重新命名方便識別。 p12文件其實就加密的 cer證書。可以copy給其他Mac安裝。

第二臺Mac安裝 p12后,進行第四章的XCode配置后即可具有開發(fā)、測試、發(fā)布iOS的能力

(2)多人多臺Mac開發(fā)相同ios項目 如果不方便把開發(fā)者賬號和密碼給其他人用,需要把對應開發(fā)人員加入到 開發(fā)者成員中。

微信圖片_20230117111657.jpg

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

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

8.APP打包上架

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

微信圖片_20230117111708.jpg

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

微信圖片_20230117111711.jpg

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

設備選擇:

微信圖片_20230117111714.jpg

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

Product   >  Archive:

微信圖片_20230117111718.jpg

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

微信圖片_20230117111723.jpg

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

App Store:App Store上架包用

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

Enterprise:企業(yè)包用

Development:開發(fā)包用

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

微信圖片_20230117111727.jpg

Select a destination : 選擇是直接上傳還是導出,直接上傳就可以

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

然后等待上傳

上傳成功之后,需要進入 App Store Connect, 看到

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

微信圖片_20230117111736.jpg

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

上架之后App Store還搜索不到APP如何下載體驗

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

微信圖片_20230117111739.jpg微信圖片_20230117111743.jpg
立即登錄,閱讀全文
文章來源:程序員大咖
版權(quán)說明:本文內(nèi)容來自于程序員大咖,本站不擁有所有權(quán),不承擔相關法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務商推薦
更多