请考虑将`flutter build ios-framework`和`flutter build macos-framework`结合使用,

qyuhtwio  于 6个月前  发布在  Flutter
关注(0)|答案(2)|浏览(148)

使用案例

在使用Flutter的add-to-app场景中,它被添加到的原生项目可能支持iOS和macOS。当使用flutter build ios-framework时,它只生成iOS专用的xcframeworks。当使用flutter build macos-framework时,它只生成macOS专用的xcframeworks。如果你使用的插件同时兼容iOS和macOS,例如shared_preferences,那么它将生成两个xcframeworks,一个名为shared_preferences_foundation.xcframework,一个包含iOS架构,另一个包含macOS架构。
如果你在Xcode中尝试链接两个版本的shared_preferences_foundation.xcframework,它只会在界面中显示一个(尽管确实链接了两个)。此外,当你构建时会出现错误,提示信息如下:

add_flutter_app/build/macos/framework/Debug/shared_preferences_foundation.xcframework:1:1: While building for iOS Simulator, no library for this platform was found in 'add_flutter_app/build/macos/framework/Debug/shared_preferences_foundation.xcframework'.

Flutter最好能够生成一个包含所有架构的单一shared_preferences_foundation.xcframework

建议

也许可以将这些命令合并成一个flutter build darwin-framework,该命令会检查项目是否支持iOS、macOS或两者都支持,然后根据需要生成所需的xcframeworks和所需架构。此外,还需要弄清楚如何生成GeneratedPluginRegistrant
对于Swift Package Manager add-to-app scenario来说,这可能会更容易一些,因为你可以使用一个TargetDependencyCondition来通过平台包含目标依赖项

uhry853o

uhry853o2#

这是一个好主意。我总是在这里陷入命名的困境。许多人不知道“达尔文”是什么意思。尽管如此,我们可以将flutter build ios-frameworkflutter build macos-framework都指向它。

相关问题