Flutter APP 上架 APP Stroe--- Flutter產(chǎn)物是Debug 版被拒絕上傳

現(xiàn)象:? 上傳 ipa 包 被蘋果后臺拒絕上傳

ITMS-90338: Non-public API usage- The app references non-public symbols in Frameworks/Flutter.framework/Flutter: _ptrace.?

圖1

原因: 使用了 Flutter 的debug 版產(chǎn)物?打成 iPa 包?

就是Frameworks/Flutter.framework 是debug 版的產(chǎn)物

Debug 版的 Flutter 產(chǎn)物 ,SDK 內(nèi)部使用了 蘋果內(nèi)部私有的API , 會被蘋果審核監(jiān)測到,存在安全性隱患. 導(dǎo)致拒絕上傳到蘋果后臺.

產(chǎn)生的原因: 因為開發(fā)過程中,直接使用了debug 模式進行開發(fā), 在打包的時候,直接打開 iOS 文件夾下面的工程,在Xcode 里設(shè)置 release 模式時,此時,Flutter 的產(chǎn)物還是 debug 模式下的產(chǎn)物. 沒有刪除替換成 release 產(chǎn)物

解決思路:?

1.先 將工程 清理一遍,清理之前debug模式下 的Flutter 產(chǎn)物

2.然后 打開Xcode 工程,配置好相關(guān) 版本號,證書,release 模式

3. 使用命令行 打包 release ,這樣Flutter.framework就會生成 release? 產(chǎn)物

4.最后 在Xcode 工程內(nèi),按照正常 打包上傳 包過程就可以了

具體解決步驟:

1.進入 Flutter 工程 <命令行操作>

flutter clean

2 .清理之前debug 模式下的 殘留產(chǎn)物 (或者手動進入文件夾刪除)

rm -rf ios/Flutter/Flutter.framework

圖2

3.?獲取 Flutter 的第三方依賴庫

flutter pub get

4.編譯 release 打包 產(chǎn)物?

flutter build ios --release?

(此時這里可以打包出 app 了, 為了安全起見,最好再次進入Xcode 清理一遍,直接打包上傳,)

上面這一步,主要目的是生成 Flutter.framework? 的release 版本產(chǎn)物

5.進入Xcode 工程,clean 一遍,檢查相關(guān)證書配置,版本號等

6.直接 Xcode? Archive 打包IPA 上傳 蘋果后臺

圖3

最后上傳成功:

圖4

小技巧: 檢查? Flutter.framework 是不是 debug 版

? 思路: 通過檢查Flutter.framework 它的CPU 架構(gòu)支持

? 如果: 該產(chǎn)物 支持模擬器 x86_arm64 這樣的架構(gòu)的話,說明該產(chǎn)物就是 Debug 版的 產(chǎn)物

?? 因為release 版的 產(chǎn)物是 不支持 模擬器CPU架構(gòu)的.? ?

輸入終端命令:? lipo -info? 產(chǎn)物的物理路徑

比如:? lipo -info /Users/zzc/Documents/rce_flutter/ios/Flutter/Flutter.framework/Flutter

圖5
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容