Flutter 打包、构建、混编等问题记录

1,813 阅读2分钟

1、更新 canvaskit 出现Failed to download

更新或者第一次运行flutter工程时会去下载 web 和 canvaskit,

但经常会报超时和下载失败

使用国内的镜像
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
再次运行时如果出现了
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!那基本就成功了

2、Flutter混编出现无法找到 FlutterPluginRegistrant或 GeneratedPluginRegistrant.h

原因是flutter项目中没有使用插件,没有使用插件时就不会构建FlutterPluginRegistrant.framework

所以在原生构建Flutter页面时,没有FlutterPluginRegistrant.framwork时,不需要

[GeneratedPluginRegistrant registerWithRegistry:flutterEngine]

3、使用Flutter高德地图SDK混编时遇到的问题

1、AMap3.0更新之后需要在初始化时update新的协议,具体可以看官方文档

2、在更新flutter的amap插件库后,可能会运行不起来,报无法找到update方法,这个时候需要将原生的amap.framework更新至最新版本

3、原生混编flutter使用高德地图时,需要将原生的amap.framework自行导入到原生代码中。

4、清理内存时不要将Flutter的执行文件删除掉,不然会很麻烦!!!!

5、1、Found an unexpected Mach-O header code: 0x72613c21

image.png

因为我的编译是将打好的flutter项目用静态库的方式导入到原生项目中,使用cocoapods方式将不会出现这类问题

flutter会有些静态库是以动态库的方式编译的, 所以需要改为静态库的编译方式
在我的项目中,在General的Embedded Content中
FlutterPluginRegistrant / flutter原生库
permission_handler / 权限管理
amap_flutter_location / 高德地图定位

改为 Do Not Embed

6、The folder “dSYMs” doesn’t exist.

因 flutter从外部导入的 xcframework的文件会导致这个问题,从git中添加到项目的时候 xcframework中的dSYMs文件被忽略了,所以永远都找不到了, 需要新增一项 .gitignore的内容

.gitignore的忽略内容

## App packaging
*.ipa
*.dSYM.zip
*.dSYM

.gitignore的新增内容

!**/*.xcframework/**/*.dSYM

7、在安卓运行flutter报错

image.png

按照提示的路径将需要修改的属性值修改即可,