Flutter iOS打包過程及構(gòu)建上線審核通過流程總結(jié)

  • 本文為 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分惨缆。

提交及審核耗時(shí)

書接上回 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)建 完成妨托。

新建App

2、版本信息填寫-就是App的 簡(jiǎn)介吝羞、宣傳文本兰伤、描述 巴拉巴拉。

App版本信息

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)彈框

年齡分級(jí)

這里強(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隱私參考

App隱私
編輯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 StudioTerminal 為例谍珊。

flutter build ios

2、選中文件夾 ios > Flutter > Open iOS module in Xcode

image.png

3急侥、在 Xcode 配置 BundleID砌滞、VersionBuild等信息

Xcode配置基礎(chǔ)信息

4缆巧、選擇 Xcode > Product > Archive 打包

Archive打包

5布持、點(diǎn)擊 Distribute App > App Store Connect > Upload/Export

Distribute App
App Store Connect
Upload/Export

可以選擇 Upload 或者 ExportExport 就是導(dǎo)出本地再上傳-可以使用 TransPorter 工具單獨(dú)上傳陕悬;Upload 就是前面之后直接上傳 App Store Connect题暖。

去掉所有勾選
自動(dòng)簽名
選擇Upload
Uploading

可能會(huì)出錯(cuò),沒事 失敗是成功的媽媽??

出錯(cuò)

依我這跛腳的英文水平盲猜是未設(shè)置1024的icon捉超,設(shè)置一下重走流程胧卤。

這次 Upload 成功,理論上 TestFlight 可以看到剛上傳的版本。我們來看一看拼岳,毛都沒有一根

TestFlight

接著查看下注冊(cè) Apple ID 的郵箱枝誊,可能有類似下邊的郵件


ITMS-90683

ITMS-90078

再次盲猜- 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

選擇App
勾選 Push Notifications

在彈框中 Create Certificate 上邊 是 開發(fā)環(huán)境 下邊是 生產(chǎn)環(huán)境 祠够。然后 Upload a Certificate Signing Request 即可

Create Certificate

新建的證書可在 Certificates 查詢

推送證書

Xcode 添加 Push Notifications

Push Notifications
Push Notifications添加成功

重走流程,再次出錯(cuò) WTF

提示版本號(hào)已提交

再次盲猜 - 1.2.3(7) 已經(jīng)提交過了粪牲,改一下 Build ,重走流程

修改Build

成功構(gòu)建-8版本為未設(shè)置 Push Notifications 9版本為設(shè)置 Push Notifications

構(gòu)建成功

后續(xù)則填寫完整信息古瓤,選擇構(gòu)建版本提交審核即可。

選擇構(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末阔涉,一起剝皮案震驚了整個(gè)濱河市缆娃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瑰排,老刑警劉巖贯要,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異椭住,居然都是意外死亡崇渗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門京郑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宅广,“玉大人,你說我怎么就攤上這事些举「” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵户魏,是天一觀的道長驶臊。 經(jīng)常有香客問我,道長绪抛,這世上最難降的妖魔是什么资铡? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮幢码,結(jié)果婚禮上笤休,老公的妹妹穿的比我還像新娘。我一直安慰自己症副,他們只是感情好店雅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贞铣,像睡著了一般闹啦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上窍奋,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天纺酸,我揣著相機(jī)與錄音碎紊,去河邊找鬼仗考。 笑死瘟斜,一個(gè)胖子當(dāng)著我的面吹牛螺句,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播取劫,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼庶诡,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼扯俱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起读存,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎琅催,沒想到半個(gè)月后侠碧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弄兜,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贸典,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绳锅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡彻消,死狀恐怖丙笋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情怠肋,我是刑警寧澤钉答,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布右蹦,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏晃洒。R本人自食惡果不足惜吃引,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一庐氮、第九天 我趴在偏房一處隱蔽的房頂上張望输涕。 院中可真熱鬧莱坎,春花似錦衣式、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碉京。三九已至,卻和暖如春螟深,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背烫葬。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工界弧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人搭综。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓垢箕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親兑巾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子条获,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354