Codemagic构建成功但发布至App Store Connect时出现认证错误的解决方案求助
我的Codemagic构建已成功完成,但在将应用部署至App Store Connect时出现以下错误:
{"tool-version":"4.059.1219","tool-path":"/Applications/Xcode-13.0.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework","os-version":"11.6.1","product-errors":[{"message":"Unable to authenticate.","userInfo":{"NSLocalizedDescription":"Unable to authenticate.","NSLocalizedFailureReason":"Unable to authenticate."},"code":-19209}]}
我之前也碰到过一模一样的问题,这个错误本质是Codemagic与App Store Connect之间的认证链路出了问题,下面是我亲测有效的几个解决步骤:
核对API密钥的配置细节
先确认Codemagic里配置的App Store Connect API密钥是否有效:- 密钥必须拥有
App Manager或Developer级别的权限,不能是权限过低的类型; - 检查密钥的Issuer ID、密钥ID和私钥内容是否完全正确,尤其是私钥的首尾标识
-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----要完整保留,不能遗漏字符; - 确认密钥没有过期或被Apple开发者后台撤销。
- 密钥必须拥有
刷新Codemagic的环境变量缓存
如果最近更新过API密钥,Codemagic可能还在使用旧的缓存配置。进入项目的环境变量设置页面,找到存储Apple相关密钥的变量组,重新保存一次配置,然后触发新的构建部署。升级Codemagic使用的Xcode版本
错误信息里显示使用的是Xcode 13.0,这个版本相对较旧,苹果服务器对旧版Xcode的兼容性已经下降。建议在Codemagic的构建配置中,将Xcode版本切换到14.x或15.x的稳定版,新版本的Xcode在与App Store Connect通信时的认证逻辑更稳定。检查Apple开发者账号状态
登录Apple开发者后台和App Store Connect,确认账号没有欠费、被限制或处于异常状态。如果账号有未处理的警告或付费问题,也会导致认证失败。重新生成API密钥
如果前面的方法都无效,直接去Apple开发者后台删除现有的API密钥,重新生成一个新的,然后把新的密钥信息更新到Codemagic的环境变量中。有时候密钥会因为苹果服务器的内部逻辑失效,重新生成能快速解决问题。
内容的提问来源于stack exchange,提问作者Joe

