如何解决Xcode 13导出开发者签名应用时崩溃及签名不匹配问题
解决方案
核心问题定位
你遇到的是Xcode 13版本的签名缓存+证书类型不匹配问题,崩溃原因是Xcode读取到nil值的无效证书路径触发断言失败,App Store上传正常是因为上传流程用的开发证书配置匹配,Developer ID导出需要单独的证书类型。
操作步骤
- 清理本地无效签名数据:
打开「钥匙串访问」,切换到「登录」钥匙串的「我的证书」分类,删除所有ID为AAAAAAAAAAA、前缀为Apple Development或Developer ID Application的无效旧证书,退出钥匙串访问后执行终端命令删除本地过期描述文件:rm -rf ~/Library/MobileDevice/Provisioning\ Profiles/* - 修正签名配置:
打开项目TARGETS的签名设置页,保持「Automatically Manage Signing」勾选状态,等待Xcode自动同步你开发者账号下的有效证书(对应ID为BBBBBBBBBBB的证书);导出Developer ID分发包时,导出流程的签名选项要选择对应团队的Developer ID类型证书,不要使用开发证书,开发证书仅支持本地调试和App Store上传,和Developer ID分发的描述文件天然不匹配。 - 清理Xcode缓存解决崩溃问题:
执行终端命令清除项目编译缓存:
重启Xcode后重新归档项目,再尝试导出Developer ID包即可。rm -rf ~/Library/Developer/Xcode/DerivedData
证书ID不匹配说明
本地提示的AAAAAAAAAAA是历史遗留的旧证书ID,缓存在本地钥匙串和Xcode配置中,和你开发者账号后台当前有效证书的BBBBBBBBBBBID不一致,清理完本地旧数据后提示会自动消失。
内容的提问来源于stack exchange,提问作者headbanger
相关产品推荐
相关产品推荐

