升级macOS Sonoma后Flutter iOS应用代码签名失败求助
解决Flutter iOS应用在macOS Sonoma下的签名失败问题
核心报错分析
从报错信息可定位两个关键问题:
unable to build chain to self-signed root for signer:签名证书的信任链不完整errSecInternalComponent:钥匙串访问权限或签名工具运行异常
具体解决步骤
1. 重置签名证书与钥匙串
- 打开钥匙串访问,切换到
登录钥匙串,删除所有过期、无效的Apple Development/Distribution证书 - 打开Xcode,进入
Settings > Accounts,选中你的Apple ID,点击Manage Certificates - 删除现有证书后,点击左下角
+重新生成Development和Distribution证书 - 重启Mac,确保钥匙串权限生效
2. 修复Flutter框架签名兼容性问题
macOS Sonoma对旧Flutter框架签名存在兼容问题,手动重新签名:
在项目根目录执行以下命令:
flutter clean flutter pub get # 进入iOS项目目录 cd ios # 清理Pod缓存并重新安装 rm -rf Pods Podfile.lock pod install # 手动重新签名Flutter.framework codesign --force --deep --sign "Apple Development: Etienne Mary (你的团队ID)" Runner/Products/Release-iphoneos/Flutter.framework/Flutter
3. 调整Xcode签名配置
- 打开Xcode中的Runner项目,进入
Signing & Capabilities - 确保
Automatically manage signing已勾选,且正确选择你的开发团队 - 切换到
Build Settings,搜索Code Signing Identity,确认Debug和Release版本都匹配对应的Apple Development/Distribution证书 - 搜索
Other Code Signing Flags,添加--deep参数
4. 修复钥匙串访问权限
- 打开
系统设置 > 隐私与安全性 > 完全磁盘访问权限,确保Xcode和codesign工具已被授权 - 若权限设置后仍报错,执行以下命令重置钥匙串权限:
security unlock-keychain login.keychain-db security set-keychain-settings -t 3600 -l ~/Library/Keychains/login.keychain-db
5. 更新依赖版本
- 执行
flutter upgrade升级到最新稳定版Flutter(旧版Flutter与Sonoma兼容性较差) - 确保Xcode已升级到App Store提供的最新版本
内容的提问来源于stack exchange,提问作者Etienne Mary
相关产品推荐
相关产品推荐

