Fair icon indicating copy to clipboard operation
Fair copied to clipboard

混合开发模式下,提示找不到FairDynamicFlutter

Open cuocuo opened this issue 3 years ago • 7 comments

混合开发模式下,使用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

cuocuo avatar Aug 22 '22 09:08 cuocuo

收到,我们安排同学看一下。

yancechen avatar Aug 22 '22 09:08 yancechen

https://github.com/flutter/flutter/issues/72909 可以参考这个问题

cuocuo avatar Aug 22 '22 09:08 cuocuo

你好,咱们这边的集成方式手动还是 Pod 形式?

gongpengyang avatar Sep 01 '22 02:09 gongpengyang

pod集成的,先build出xcframework,在集成到原生项目中。

cuocuo avatar Sep 05 '22 01:09 cuocuo

解决了,这个问题是因为flutter的Fair使用了FlutterPlugin导致插件的framework无法在flutter项目中生成对应的xcframework,导致link时报错 image

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

在Build setting中的Library Search Paths把FairDynamicFlutter.framework对应的路径加上,能成功运行了

rickli avatar Feb 23 '23 08:02 rickli

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'

zmtzawqlp avatar Apr 26 '23 02:04 zmtzawqlp

flutter issue 追踪: https://github.com/flutter/flutter/issues/125530

zmtzawqlp avatar Apr 26 '23 03:04 zmtzawqlp