Flutter iOS分享扩展提交TestFlight遇嵌套包及Frameworks错误如何解决?
Flutter iOS分享扩展提交TestFlight报错的解决办法
针对提交TestFlight时出现的「扩展包包含不允许的嵌套包/Frameworks文件」错误,可按以下步骤解决:
- 确认使用extension_safe目录下的Flutter.xcframework(官方专为App Extension适配的版本),不要混用主App的Flutter框架
- 分别配置主App与扩展的Framework嵌入规则:
- 选中主App(Runner)Target,进入General > Frameworks, Libraries, and Embedded Content,将Flutter.xcframework设置为Embed & Sign
- 选中share_extension Target,同样进入该页面,将Flutter.xcframework设置为Do Not Embed,但必须保留Build Phases > Link Binary With Libraries中的该框架引用(确保编译时能链接依赖)
- 调整扩展的Build Settings:
- 将Always Embed Swift Standard Libraries设为NO
- 将Build Libraries for Distribution设为YES
- 清理项目缓存后重新打包:
- 执行
flutter clean - 删除iOS目录下的Pods文件夹,重新执行
pod install - 重新Archive并提交
- 执行
原理说明
App Store禁止Extension包内嵌套Framework,主App已嵌入的Flutter.xcframework可被扩展共享,只需保留链接引用即可满足组件运行需求,既避免重复嵌入违规,又保证分享组件正常工作。
内容的提问来源于stack exchange,提问作者Виталий Фомичев
相关产品推荐
相关产品推荐

