混合开发模式下,提示找不到FairDynamicFlutter
混合开发模式下,使用flutter build ios-framework --no-release --no-profile命令生成xcframework,集成到原生工程,提示找不到FairDynamicFlutter。
错误如下:
ld: warning: Could not find or use auto-linked framework 'FairDynamicFlutter' Undefined symbols for architecture arm64: "_OBJC_CLASS_$_FairDynamicFlutter", referenced from: objc-class-ref in fair(FairDartBridge.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
flutter: 2.8.1 fair: 2.7.0 cocopods: 1.10.1 iOS: 15.6.1 真机
@zhiqingchen
收到,我们安排同学看一下。
https://github.com/flutter/flutter/issues/72909 可以参考这个问题
你好,咱们这边的集成方式手动还是 Pod 形式?
pod集成的,先build出xcframework,在集成到原生项目中。
解决了,这个问题是因为flutter的Fair使用了FlutterPlugin导致插件的framework无法在flutter项目中生成对应的xcframework,导致link时报错

于是我在项目工程中copy了FairDynamicFlutter.framework运行成功了,但是启动后马上报错

在Build setting中的Library Search Paths把FairDynamicFlutter.framework对应的路径加上,能成功运行了
flutter build ios-framework 之后将 'FairDynamicFlutter.xcframework' 跟产物放一起就行了,主项目可以通过
podspec 引入产物。 附带 xcframework 产物
FairDynamicFlutter.xcframework.zip
比如, 产物可以放内部的仓库
s.source = { :git => 'xxxx.git', :branch => 'xxxx'}
# 模拟器用debug
# s.ios.vendored_frameworks = 'debug/*.xcframework'
s.ios.vendored_frameworks = 'release/*.xcframework'
flutter issue 追踪: https://github.com/flutter/flutter/issues/125530