You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级macOS Sonoma后Flutter iOS应用代码签名失败求助

解决Flutter iOS应用在macOS Sonoma下的签名失败问题

核心报错分析

从报错信息可定位两个关键问题:

  1. unable to build chain to self-signed root for signer:签名证书的信任链不完整
  2. 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 23:28:24