Flutter iOS添加Notification Extension Service后无法通过Xcode归档项目
以下是针对你遇到的归档报错问题的可行解决步骤:
添加Flutter框架依赖到Extension Target
选中你的Notification Extension Target,进入Build Phases->Link Binary With Libraries,点击+搜索并添加Flutter.framework;如果找不到,通过Add Other...选择项目ios/Flutter/Flutter.framework路径添加。配置Framework搜索路径
在Extension Target的Build Settings中搜索Framework Search Paths,添加$(PROJECT_DIR)/Flutter并设置为递归(recursive)。禁用Extension的Bitcode
在Build Settings中搜索Enable Bitcode,将其设置为NO——Flutter框架默认不支持Bitcode,开启状态下归档会触发链接失败。调整Runpath搜索路径
在Build Settings中搜索Runpath Search Paths,确保包含@executable_path/Frameworks和@loader_path/Frameworks两个路径。确认Deployment Target一致
再次检查Notification Extension的Deployment Target与Runner Target完全匹配,避免版本差异导致的兼容性问题。验证Runner的Run Script配置
进入Runner Target的Build Phases,找到Run Script阶段,确保脚本内容为:"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed注意不要给Notification Extension Target添加该脚本。
完成以上配置后,执行Product -> Clean Build Folder清理构建缓存,再尝试Product -> Archive即可。
内容的提问来源于stack exchange,提问作者Yokaha

