- 本文為 AriesHoo 原創(chuàng),轉(zhuǎn)載必須保留出處评汰!
- 原文地址
相關(guān)文章一:用Flutter給Readhub寫一個(gè)App
相關(guān)文章二:Flutter版本Readhub開源
相關(guān)文章三:Flutter iOS真機(jī)調(diào)試及打包過程記錄
相關(guān)文章四:Flutter iOS打包過程及構(gòu)建上線審核通過流程總結(jié)
相關(guān)文章五:Freadhub終于升級(jí)Flutter2.0了
最近(2021年3月12日 上午2:31
),終于筆者用 Flutter
開發(fā)的公司項(xiàng)目iOS版本成功上線 App Store
痢虹。從 3月8日 下午 5:17
構(gòu)建第一個(gè)版本被去,3月9日 下午 4:34
第一次提交審核、3月11日 下午9:45
第三次提交審核到 3月12日 上午02:31
審核通過奖唯,共計(jì)構(gòu)建 7
個(gè)版本 3
次提交,耗時(shí) 3天9時(shí)14分
惨缆。
書接上回 Flutter iOS真機(jī)調(diào)試及打包過程記錄 ,上篇說到Flutter
iOS 真機(jī)調(diào)試及打包上傳測(cè)試平臺(tái)( 蒲公英
、fir.im
等),這次接著說打包正式版本構(gòu)建上傳App Store Connect
并提交審核流程坯墨。筆者在此次過程遇到的問題以作記錄僅供大家參考寂汇,如有幫助,不甚榮幸捣染!
理論上這些流程和 Flutter
本身已并沒有關(guān)系了骄瓣,原生iOS開發(fā)的流程也是這樣的。申請(qǐng)正式版本的 證書
耍攘、bundleId
榕栏、profile
也與Flutter iOS真機(jī)調(diào)試及打包過程記錄 類似,這里不做展開蕾各,這里從 App Store Connect 新建App
開始展開說明-這里以筆者寫的第一個(gè)Flutter 開源項(xiàng)目 Freadhub
為例扒磁。
App Store Connect 新建App
1、登錄 App Store Connect
進(jìn)入 我的App
點(diǎn)擊 +
選擇 新建App
式曲,填寫基礎(chǔ)信息點(diǎn)擊 創(chuàng)建
完成妨托。
2、版本信息填寫-就是App的 簡(jiǎn)介
吝羞、宣傳文本
兰伤、描述
巴拉巴拉。
3钧排、上傳應(yīng)用的截圖
??需要準(zhǔn)備 3-5 張預(yù)覽圖-包括需要 6.5 寸和 5.5 寸兩種医清。如果還需要支持 iPad 版本那就還需要上傳 12.9 的 iPad 圖;如果沒有設(shè)計(jì)師出稿件卖氨,推薦使用模擬器進(jìn)行截圖(注意不要截入 DEBUG 的 Label-MaterialApp 設(shè)置debugShowCheckedModeBanner 為false即可
), 6.5 寸可以用 iPhone 11 Pro Max 模擬器负懦,5.5 寸的用 iPhone 8 Plus 模擬器筒捺,打開具體頁面后,按下 command + s 可以保存到桌面纸厉,然后上傳即可系吭。
4、年齡分級(jí)
點(diǎn)擊年齡分級(jí)旁的 編輯
進(jìn)入選項(xiàng)彈框
這里強(qiáng)調(diào)下颗品,除非必要不勾選 面向兒童
--不要問為啥肯尺?問就是你選擇提交試一試。
建議:除了不受限制的網(wǎng)頁訪問
勾選 是
其它選項(xiàng)全部勾選 否
分級(jí)為 17+歲
躯枢,全部選 否
分級(jí)為 4+歲
则吟。
5、App隱私
現(xiàn)在受 應(yīng)用監(jiān)管部門
要求 App需要有 隱私政策-就是第一次安裝應(yīng)用打開后彈出框锄蹂,不點(diǎn)同意無法繼續(xù)的那個(gè)鬼東西-這里需要提供完整的隱私政策網(wǎng)址氓仲。App隱私參考
6、App審核信息
如果需要登錄請(qǐng)?zhí)峁y(cè)試登錄賬號(hào)及密碼
備注:對(duì)審核過程會(huì)有所幫助的 App 額外信息。請(qǐng)?zhí)峁y(cè)試 App 時(shí)可能需要的信息(例如敬扛,App 特有的設(shè)置)晰洒。
正式版本打包
1、命令行輸入 flutter build ios
生成 release
模式的下的 framework
文件啥箭,這里以 Android Studio
的 Terminal
為例谍珊。
2、選中文件夾 ios > Flutter > Open iOS module in Xcode
3急侥、在 Xcode
配置 BundleID
砌滞、Version
、Build
等信息
4缆巧、選擇 Xcode > Product > Archive
打包
5布持、點(diǎn)擊 Distribute App > App Store Connect > Upload/Export
可以選擇 Upload
或者 Export
。Export
就是導(dǎo)出本地再上傳-可以使用 TransPorter
工具單獨(dú)上傳陕悬;Upload
就是前面之后直接上傳 App Store Connect
题暖。
可能會(huì)出錯(cuò),沒事 失敗是成功的媽媽??
依我這跛腳的英文水平盲猜是未設(shè)置1024的icon
捉超,設(shè)置一下重走流程胧卤。
這次 Upload
成功,理論上 TestFlight
可以看到剛上傳的版本。我們來看一看拼岳,毛都沒有一根
接著查看下注冊(cè) Apple ID
的郵箱枝誊,可能有類似下邊的郵件
再次盲猜- ITMS-90683
問題為權(quán)限未在 Info.plist
聲明;- ITMS-90078
問題為推送證書配置問題惜纸。
權(quán)限聲明-需要的自取
<key>NSContactsUsageDescription</key>
<string>是否允許App訪問您的聯(lián)系人</string>
<key>NSCalendarsUsageDescription</key>
<string>是否允許App訪問您的日歷</string>
<key>NSAppleMusicUsageDescription</key>
<string>是否允許App訪問您的媒體資料庫</string>
<key>NSMotionUsageDescription</key>
<string>是否允許App訪問您的運(yùn)動(dòng)健康</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>是否允許App訪問您的語音識(shí)別</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>是否允許App訪問訪問您的位置</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>是否允許App訪問訪問您的位置</string>
至于推送證書的叶撒,網(wǎng)上說沒有使用到推送的可以忽略。如果要配置可以重新申請(qǐng)一個(gè)推送證書
點(diǎn)擊 Identifiers > targetId
進(jìn)入詳情耐版,滾動(dòng)到 Push Notifications
勾選并點(diǎn)擊 Configure
在彈框中 Create Certificate
上邊 是 開發(fā)環(huán)境
下邊是 生產(chǎn)環(huán)境
祠够。然后 Upload a Certificate Signing Request
即可
新建的證書可在 Certificates
查詢
在 Xcode
添加 Push Notifications
重走流程,再次出錯(cuò) WTF
再次盲猜 - 1.2.3(7)
已經(jīng)提交過了粪牲,改一下 Build
,重走流程
成功構(gòu)建-8版本為未設(shè)置 Push Notifications
9版本為設(shè)置 Push Notifications
后續(xù)則填寫完整信息古瓤,選擇構(gòu)建版本提交審核即可。
至此 正式版本 打包及構(gòu)建上傳 App Store Connect
提交審核流程結(jié)束腺阳。
回顧審核未通過
因公司項(xiàng)目已審核通過落君,無法進(jìn)入 Resolution Center
,在 App Store Connect
版本記錄已查看不到相關(guān)審核失敗問題亭引。在此憑記憶羅列出兩次審核未通過問題绎速。
第一次
1、提示選擇了 面向兒童
-但是檢查應(yīng)用不是專為兒童痛侍;
2朝氓、檢查到應(yīng)用通過 itms-services鏈接到蒲公英
-your app uses the itms-services URL scheme to connect to pgyer.com
-因之前測(cè)試版本使用蒲公英版本發(fā)布及升級(jí)
解決方式
1魔市、去掉年齡分級(jí),面向兒童勾選框
2赵哲、去掉pgyer相關(guān)代碼刪除pgyer相關(guān)內(nèi)容
-如果使用其它三方升級(jí)SDK或URL也一并刪除
第二次
1待德、提示設(shè)置了兒童分類選項(xiàng)-但是檢查應(yīng)用不是專為兒童;-當(dāng)時(shí)年齡分級(jí)為 4+歲
2枫夺、說明應(yīng)用賬號(hào)來源将宪?是否付費(fèi)?付費(fèi)內(nèi)容需要誰支付橡庞?用戶如何查看付費(fèi)內(nèi)容较坛?等問題
解決方式
1、年齡分級(jí):除了不受限制的網(wǎng)頁訪問
勾選 是
其它選項(xiàng)全部勾選 否
分級(jí)為 17+歲
2扒最、App審核信息 的 備注
里闡述清楚
整個(gè)流程要點(diǎn)總結(jié)
1丑勤、確保注冊(cè) Apple ID
的郵箱可正常接收郵件,如果不正嘲扇ぃ可修復(fù)正撤ň海或變更 AppleID
- 筆者使用的公司賬號(hào)就無法正常收發(fā)郵件,剛開始upload后無法查看構(gòu)建的版本也不知道原因强挫,后變更了 Apple ID 郵箱才解決
2岔霸、年齡分級(jí),除非必要不勾選 面向兒童
--建議不受限制的網(wǎng)頁訪問
勾選 是
其它選項(xiàng)全部勾選 否
分級(jí)為 17+歲
3俯渤、使用到的權(quán)限一定在 Info.plist
聲明 從目前情況來看上邊的7個(gè)權(quán)限申明可直接使用到自己項(xiàng)目
4呆细、項(xiàng)目中不要出現(xiàn) 蒲公英
、fir.im
類似的三方升級(jí)SDK相關(guān)代碼或者域名
5八匠、App審核信息
里的 備注
盡量闡述應(yīng)用 是否需要登錄-需要登錄的要提供測(cè)試賬號(hào)
侥钳?賬號(hào)如何得來聋庵?是否需要付費(fèi)威兜?付費(fèi)內(nèi)容如何獲壤赏簟?等等劝萤。 闡述得越清楚越有利與審核快速通過
。
至此 Flutter
開發(fā)的iOS項(xiàng)目正式打包慎璧、構(gòu)建床嫌、提交審核及相關(guān)過程可能遇到的問題總結(jié)到此結(jié)束。筆者也是第一次上線iOS的項(xiàng)目胸私,遇到的問題很不全面厌处。如能解決大家審核過程中的小問題不甚榮幸,如果沒有解決到也請(qǐng)大家輕噴岁疼。 比心 ?? ??
關(guān)于我
掘金: AriesHoo
簡(jiǎn)書: AriesHoo
GitHub: AriesHoo
Email: AriesHoo@126.com