不久前,我开始编写一个新的 iOS 应用程序。经过很长时间的休息后,我再次对其进行了工作,并且几乎完成了。
我在模拟器上对其进行了测试,但是当我尝试在我的 iPhone 6 上安装它时(我过去已经做过),我收到一条错误消息,告诉我我的应用程序无法安装,因为用于签署此应用程序的证书已过期或已被撤销。
我尝试了很多事情:
我从 Xcode、钥匙串和苹果开发人员那里删除了所有证书和配置文件,让 Xcode 为我创建新的我删除了 Xcode 并从头开始执行整个过程
但这并没有解决我的问题。
知道可能是什么问题吗?
编辑:此答案不适用于 Xcode 10 及更高版本。请参阅turkenh's answer。
解决方案
首先,通过按住 Shift(⇧)+Command(⌘)+K 或选择 Product > Clean 来清理项目
然后:
转到 Xcode Menu> Preferences 选择 Accounts > Team > 查看详细信息 从 Provisioning Profiles 列表中选择任何 Provisioning Profile 右键单击 > 选择 Show in Finder。然后您将看到所有供应配置文件列表 从文件夹中选择所有供应列表并将它们移动到垃圾箱 通过单击供应配置文件列表下方的全部下载来下载所有供应配置文件。
现在,再次运行,它应该可以工作了!
对于那些在 Account > Team > View Details 中找不到“查看详细信息”按钮的人,这是我在 Xcode 10 上解决此问题的方法:
删除 ~/Library/MobileDevice/Provisioning\ Profiles/ 中的所有配置文件,按住 Shift(⇧)+Command(⌘)+K 或选择 Product > Clean(可能标记为“Clean Build Folder”)清理项目 重新启动 Xcode
然后再试一次。
编辑:此答案不适用于 Xcode 10 及更高版本。请参阅turkenh's answer。
我遇到过这个问题并且能够找到答案。
可以在 here 中找到答案。
这是你必须做的:
转到首选项->帐户 按您的帐户 单击“查看详细信息” 单击左下角的“全部下载”。
这些步骤为我解决了问题。
我有一个稍微不同的解决方案。它可能来自更新或我的特定用例。
使用 Xcode 7.3.1
我正在使用文件共享系统(保管箱)在两台不同的机器上进行开发。使用 Download All
解决方案并没有为我解决问题。
按照上面的链接,我接受了以下建议
删除 ~/Library/MobileDevice/Provisioning Profiles 中的所有配置文件
(这是一个极端的措施,但 Xcode 现在应该下载你需要的东西)
Xcode 提示更新自身。
在不同机器上的开发之间切换时我仍然遇到问题。它显示以下警告/失败:
此应用程序的应用程序标识符权利与已安装应用程序的权利不匹配。这些值必须匹配才能允许升级。
该问题的解决方案是从设备上删除开发项目,然后重新安装。
一个简单的“清理”(Shift(⇧)+Command(⌘)+K) 解决了我
发现另一个导致 Xcode 9
中出现血腥 Certificate has either expired or has been revoked
错误的案例。如果您尝试使用 有效证书 进行签名,但您的钥匙串上的同一团队中确实有另一个 吊销证书,Xcode 会抛出此错误。要检查您是否已撤销证书,请参阅 Xcode -> Preferences -> Accounts -> Your Apple ID -> Your Team -> Manage Certificates
。使用 Keychain Access
删除已撤销的证书可以解决此问题。看起来像 Xcode 中的另一个代码签名错误。
更新 Xcode 13.2.1 (03/2022):此方法仍然有效。
在 Xcode 11.3.1 中,界面已从所有当前答案更改。
转到菜单“Xcode”> 首选项> 帐户。在左侧为项目选择正确的 Apple ID。如果配置文件仍处于活动状态,请单击“管理证书”。如果有任何被吊销的证书,右键单击被吊销的证书和“删除证书”。在随附的屏幕截图中,应删除以红色框出的证书。
https://i.stack.imgur.com/wZKey.png
删除最新的“创建日期”证书应该会刷新您的证书,但建议删除所有已吊销的证书。
删除吊销的证书后,您应该能够重建应用程序。
在 Xcode 8 中,
转到首选项->帐户 按您的帐户 单击“查看详细信息” 删除您需要的配置文件 单击左下角的“全部下载”。
这对我有用:
转到 Xcode -> Preferences 并选择 Accounts 选项卡。选择您的帐户并在右下角单击管理证书。您将看到“用户名”菜单的签名证书将弹出。从底部单击Apple Development,如下所示,然后按完成按钮。
https://i.stack.imgur.com/DGCm6.png
- 打开钥匙串 - 通过选择它来检查所有证书。 - 检查状态是否有效。 - 如果证书无效,则右键单击它并删除该证书
Xcode 8 的一个新问题,对我有用的是关闭目标“常规”选项卡上新的“自动管理签名”复选框,然后重新打开它。
这将启动一个载入向导,为 Xcode 8 正确设置。
最终对我有用的是在下载最新的配置文件后关闭并重新启动我的 MacBook。
https://i.stack.imgur.com/4SYVz.png
我遇到了这个问题,它看起来像是 xcode 的 10.x 新构建系统中的一个错误。
转到文件 > 项目设置更改构建系统以使用旧版构建系统。通过按住 Option(⎇)+Shift(⇧)+Command(⌘)+K 或按住 Option(⎇) 并在设备上选择 Product > Clean Build Folder Run 来深度清理项目
当也没有删除和重新下载配置文件时,“清理”也没有帮助我做到这一点:
首选项>帐户> Apple ID>选择您的帐户>选择您的团队>查看详细信息...>重置您的签名身份(在我的情况下为iOS开发)。
这一直对我有用。
1.将您的 Mac 计时设置更改为自动(打开日期和时间首选项检查自动设置日期和时间)。
2.之后转到您的 X 代码,清理并运行代码。
3.如果失败,请注销您的 Apple 配置文件并删除 XCode 中的所有自动创建的配置文件 - 首选项并将所有配置文件移动到垃圾箱并作为新文件下载。然后再次登录并运行您的代码。
如果您有在设备上运行的主机测试目标,请确保它使用与应用目标相同的代码签名身份。否则,当您在测试和调试应用程序之间切换时,您将不得不进行清理。
当我们在主机测试目标中关闭代码签名作为构建时增强时,我在 Xcode 11.4.1 中遇到了这个问题。为主机测试重新打开代码签名后,在运行主机测试目标和应用程序之间切换时,我不再遇到此问题!
重命名您的目录,不要包含小数点和 0(零)。
像这样,我解决了。
有时,在 Xcode 8 中,您可能会发现自己处于撤销-重新生成循环中,您让 Xcode 8 “修复”证书和配置,然后 Xcode 发现新/重新生成的证书也无效,然后您返回撤销,然后它一直在发生。
在这种情况下,请检查您的 MacOS 时间!如果您将其设置为其他时间,而不是真正的当前时间,则新证书可能始终“尚未”有效。
这不是我面临的大问题。只需清理项目并重新启动您的 xcode!希望它对你有用!它对我有用。 :)
或首先通过按住 Shift(⇧)+Command(⌘)+K 或选择产品 > 清理来清理项目
然后
转到 XCode 菜单>首选项
选择帐户 > 团队 > 查看详细信息
从配置文件列表中选择任何配置文件
右键单击 > 选择在 Finder 中显示。然后您将看到所有配置文件列表
从文件夹中选择所有临时列表并将其移至垃圾箱
单击配置文件列表下方的全部下载,下载所有配置文件。
现在,再次运行,它应该可以工作了!
使用 Xcode Version 10.1
,我通过以下步骤解决了:
转到 Xcode,Preferences 并选择 Accounts 选项卡在 accounts 部分单击窗口左下角的齿轮,然后单击 Export Apple ID and Code Signing Assets... 将其导出到文件中,例如 Test。 developerprofile 删除您正在使用的配置文件再次点击齿轮选择 Import Apple ID and Code Signing Assets... 并选择您之前导出的文件 Test.developerprofile 现在执行清理 (Shift(⇧)+Command(⌘)+K)和 Build (Command(⌘)+B) 再次运行
更改我的电子邮件帐户后,我遇到了这个问题。
在尝试了这么多可能的解决方案后,唯一可行的方法是从我的 Apple developer account 中删除当天创建的证书。 (这不是我帐户中唯一的证书)似乎自动创建了一个新证书,并且与主证书冲突。
使用 Xcode 10.3
按着这些次序:
转到 https://developer.apple.com 关注帐户 > 证书、标识符和配置文件 > 设备 从列表中找到您的 iPhone 并单击它。它将打开详细信息页面禁用然后启用它转到 Xcode 选择您的 iPhone 并运行它
不要忘记去 Settings
> General
> Device Management
信任开发者帐户
Xcode 11.1 需要直接从 Xcode 生成证书
所以你会在 https://developer.apple.com 之后有这样的事情
https://i.stack.imgur.com/PhCAi.png
有时 Xcode 中的“Bundle Identifier”会因为你所做的一些事情而改变。确保您在 Apple Developer 帐户中定义的 Bundle Identifier 与 Xcode 中的完全相同。
如果它对任何人都有帮助:Xcode 11.x 我还撤销(删除)了 App Developer 帐户中的证书。然后我以为我在钥匙串访问中也删除了证书,但在尝试将应用更新上传到 AppStore 时不断收到错误消息。
然后我发现钥匙串访问中有两个不同的地方,其中一个保存证书(在钥匙下很有趣,一旦在钥匙串中选择登录),另一个是私钥(当然在项目证书下钥匙链)。我确保两者都被删除,现在一切都很好。
由于 Apple 全球开发者关系证书颁发机构证书冲突,您也可能会收到此错误。
对我有用的是删除系统和“KeyChain Access”应用程序中的登录钥匙串中的所有Apple Worldwide开发人员证书(不是显示您公司名称的证书)。使用 Xcode (9.2) 重新启动和重建,问题就消失了。
转到 https://www.apple.com/certificateauthority,下载所有 Worldwide Developer Relations - G# 证书并将它们添加到您的 Mac 钥匙串。重新启动 Xcode 并重试。
我遇到了这个问题,我解决了这个问题。
转到 XCode Menu> Accounts 选择 Accounts > Team > View Details 选择 Manage Certificates... 你会看到签名证书菜单会弹出。单击 Apple Development,然后按完成按钮。
Xcode 13.2.1 中的更新,
对我来说,这个错误是由我使用免费的苹果开发者帐户引起的。因此,在特定时间不使用证书构建该应用程序后,它将被撤销。但是无法识别 Xcode 以再次重建证书 -> 这就是错误发生的原因。
就像 turkenh's answer 一样,但您不需要重新启动 Xcode。清理后证书会自动重建。