Flutter Web选择并上传文件

Flutter Web选择并上传文件,第1张

需要使用universal_html插件

universal_html是告正用来替代dart:html的,使用dart:html会有吵灶如下袜碰悔警告:

这是为了避免在Flutter Web插件包之外使用纯web库

导入:

选择文件并上传

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12309507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存