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

现象:  上传 ipa 包 被苹果后台拒绝上传

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

图1

原因: 使用了 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

图2

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

flutter pub get

4.编译 release 打包 产物 

flutter build ios --release 

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

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

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

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

图3

最后上传成功:

图4

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

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

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

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

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

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

图5

你可能感兴趣的:(Flutter APP 上架 APP Stroe--- Flutter产物是Debug 版被拒绝上传)