新应用自动签名失败,同配置下他人成功,求解决方案
我之前也踩过几乎一模一样的坑!同项目同配置,同事用自动签名上传成功,自己操作却反复报错一会儿要开自动签名一会儿要关,折腾了好久才解决,给你几个针对性的排查方向:
彻底清理Xcode签名缓存
Xcode的本地缓存经常会“记仇”,哪怕你同步了最新的配置,旧的provision文件还是会干扰。操作步骤:- 打开Xcode偏好设置(
Xcode -> Preferences),切换到Accounts标签,选中你的Apple ID,点击Manage Certificates,删掉和当前App相关的所有Provisioning Profiles(不用怕,Xcode后面会重新生成)。 - 清理Derived Data:打开
Xcode -> Window -> Organizer,找到你的项目,点击Delete Derived Data,把缓存的构建文件全删掉。
- 打开Xcode偏好设置(
手动删除本地Provision文件
有时候Xcode偏好设置里删不干净,得去系统文件夹里手动清:
打开Finder,按Cmd+Shift+G,输入路径~/Library/MobileDevice/Provisioning Profiles,把里面和这个App ID相关的.mobileprovision文件全部删除,然后重启Xcode。逐行核对Capabilities的细节
别只看大项有没有开启,要抠细节:- 比如Game Center有没有勾选“Enable for development”?
- In App Purchases有没有在开发者后台配置对应的商品ID,且Xcode里的开关状态和后台完全一致?
- 去Apple开发者后台,找到你的App ID,核对Capabilities列表,确保和Xcode里的每一项都完全匹配,没有多开或漏开的功能。
强制刷新签名配置
先手动关闭自动签名(Build Settings -> Signing -> Automatically manage signing取消勾选),手动选择一个对应的Provisioning Profile,然后再重新勾选自动签名,让Xcode重新同步开发者后台的配置。这个操作经常能解决Xcode自动签名“卡壳”的问题。检查Xcode版本一致性
哪怕项目文件一致,如果你们用的Xcode版本不同,自动签名的逻辑可能有差异(比如某些旧版本对特定Capabilities的处理有bug),确认一下你和同事的Xcode版本完全相同。
这些操作下来,应该能解决你遇到的签名矛盾问题,我当时就是靠清理缓存+强制刷新搞定的!
内容的提问来源于stack exchange,提问作者Rob

