Flutter 开始支持App扩展
Flutter从3.16开始,支持在应用扩展中使用Flutter,具体操作可以参考官方文档。
注意事项
配置
- App extension 与原App是两个独立的项目/进程,无法直接相互调用,代码也不共享
- 如果需要共享资源,如存储等,需要配置 App Group,否则不需要
开发过程中使用的是debug/profile版的Flutter.xcframework,发布时需要手动更改导入的库,改为导入release版的Flutter.xcframework.
profile/release版通过目录 <path_to_flutter_sdk>/bin/cache/artifacts/engine/ios/extension_safe 逐级向上查找,可以找到profile或release相关字样的目录不同类型的extension内存有限制,模拟器中没有限制。Flutter需要比较多的内存,所以文档中指出,只能在“内存限制不低于100M”的扩展类型中使用Flutter,例如 share extensions
限制120M,可以使用Flutter;keyboard extension 内存限制为40M,故不可以使用Flutter。
参考资料
https://flutter.cn/docs/platform-integration/ios/app-extensions
[尝试Flutter开发custom keyboard](https://github.com/zacksleo/flutter-ios-custom-keyboard-extension) 仅能在模拟器运行,真机因内存限制无法运行