使用案例
在使用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来通过平台包含目标依赖项
2条答案
按热度按时间nue99wik1#
在添加 official documentation on
flutter build macos-framework
之前,可能需要考虑一下。uhry853o2#
这是一个好主意。我总是在这里陷入命名的困境。许多人不知道“达尔文”是什么意思。尽管如此,我们可以将
flutter build ios-framework
和flutter build macos-framework
都指向它。