Flutter APP 上架 APP Stroe--- Flutter产物是Debug 版被拒绝上传

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter APP 上架 APP Stroe--- Flutter产物是Debug 版被拒绝上传相关的知识,希望对你有一定的参考价值。

参考技术A ITMS-90338: Non-public API usage - The app references non-public symbols in Frameworks/Flutter.framework/Flutter: _ptrace. 

原因: 使用了 Flutter 的debug 版产物 打成 iPa 包 

就是Frameworks/Flutter.framework 是debug 版的产物

Debug 版的 Flutter 产物 ,SDK 内部使用了 苹果内部私有的API , 会被苹果审核监测到,存在安全性隐患. 导致拒绝上传到苹果后台.

产生的原因: 因为开发过程中,直接使用了debug 模式进行开发, 在打包的时候,直接打开 ios 文件夹下面的工程,在Xcode 里设置 release 模式时,此时,Flutter 的产物还是 debug 模式下的产物. 没有删除替换成 release 产物

1.先 将工程 清理一遍,清理之前debug模式下 的Flutter 产物

2.然后 打开Xcode 工程,配置好相关 版本号,证书,release 模式

3. 使用命令行 打包 release ,这样Flutter.framework就会生成 release  产物

4.最后 在Xcode 工程内,按照正常 打包上传 包过程就可以了

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

flutter clean

2 .清理之前debug 模式下的 残留产物 (或者手动进入文件夹删除)

rm -rf ios/Flutter/Flutter.framework

3. 获取 Flutter 的第三方依赖库

flutter pub get

4.编译 release 打包 产物 

flutter build ios --release 

(此时这里可以打包出 app 了, 为了安全起见,最好再次进入Xcode 清理一遍,直接打包上传,)

上面这一步,主要目的是生成 Flutter.framework  的release 版本产物

5.进入Xcode 工程,clean 一遍,检查相关证书配置,版本号等

6.直接 Xcode  Archive 打包IPA 上传 苹果后台

最后上传成功:

  思路: 通过检查Flutter.framework 它的CPU 架构支持

  如果: 该产物 支持模拟器 x86_arm64 这样的架构的话,说明该产物就是 Debug 版的 产物

   因为release 版的 产物是 不支持 模拟器CPU架构的.   

输入终端命令:  lipo -info  产物的物理路径

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

以上是关于Flutter APP 上架 APP Stroe--- Flutter产物是Debug 版被拒绝上传的主要内容,如果未能解决你的问题,请参考以下文章

最新上架 App Store 全流程

基于ios的网上商城可以用uni-app嘛

苹果app上架Appstore网页APP上架 彩票原生app上架全程协助

app是开发完成一定要上架后才可以使用吗?

iOS 原生 vs. Flutter 评测

苹果商店上架流程_App上架苹果流程及注意事项