Flutter添加iOS Widget时出现链接错误
解决Flutter添加iOS Widget Extension后的Xcode链接错误
错误原因
添加Widget Extension Target后,Xcode编译时找不到Flutter相关符号,本质是Extension Target错误包含了Flutter插件的编译代码,且未正确配置Flutter框架的链接路径。
解决方案
1. 移除Extension中的插件编译文件
- 打开Xcode,选中你的Widget Extension Target,进入
Build Phases→Compile Sources - 删除所有Flutter插件相关的源文件(比如
FLTFirebaseFirestorePlugin.m、PermissionHandlerPlugin.m等),这些代码属于主App,不需要在Extension中编译。
2. 配置Extension的Flutter框架链接
- 进入Widget Extension Target的
Build Settings:- 搜索
Framework Search Paths,添加路径$(SRCROOT)/Flutter,并设置为recursive - 搜索
Other Linker Flags,添加-framework Flutter - 确认
Dead Code Stripping设置为YES(减少不必要的符号引用)
- 搜索
3. 统一Deployment Target版本
- 确保Widget Extension的
Deployment Target和主App完全一致,且不低于iOS 14(适配Widget的最低系统版本)
4. 清理缓存重新编译
- 终端执行:
flutter clean - Xcode中执行:
Product→Clean Build Folder - 选择主App Target重新运行(不要直接运行Extension Target)
内容的提问来源于stack exchange,提问作者Jordy de jonghe
相关产品推荐
相关产品推荐

