Xcode error: no provisioning profiles with a valid signing identity matching the bundle identifier

Xcode error: no provisioning profiles with a valid signing identity matching the bundle identifier

我正尝试在 xCode 的 iPhone 上 运行 一个 iOS 应用程序。该应用程序本质上是 iOS 的第三方键盘,由一群朋友制作。他们在 iTunes 连接中将我添加为 'developer'。当我尝试 运行 我的 iPhone 上的应用程序时,出现以下错误:

No provisioning profiles with a valid signing identity (i.e. certificate and private key pair) matching the bundle identifier “com.nameofteam.nameofapp.nameofapp-keyboard” were found. Xcode can attempt to fix this issue. This will reset your code signing and provisioning settings to recommended values and resolve issues with signing identities and provisioning profiles.

当我点击 'Fix Issue' 时,它显示:

An App ID with Identifier "com.nameofteam.nameofapp.nameofapp-keyboard" is not available. Please enter a different string.

对于初学者,您要确保您的捆绑包标识符与 iTunes connect 上的完全相同,否则,

由于您似乎拥有源代码,因此您尝试使用的包 ID 似乎已在使用中,请尝试使用不同的 唯一 标识符。

还要确保您的 Apple ID 已连接到 Xcode,可以将其添加到 Xcode 首选项的帐户部分。您可能还需要在钥匙串访问中创建自签名证书。

试试这个,

  1. 将您的 Apple ID 添加到 Xcode 中的“帐户”偏好设置。
  2. 转到 Project 中的“常规”选项卡,然后从“团队”弹出菜单中选择您的团队名称。
  3. 在“团队”弹出菜单下方,单击“修复问题”。

TL;DR Xcode 非常讲究你在会员中心给App ID取的名字。拥有正确的包标识符是不够的。对于 Xcode 到 "see" 您的 App ID,您必须使用下面显示的特定格式。

@romrom 删除 App ID 并让 Xcode 创建新 App ID 的解决方案是一个线索。不幸的是,这对我来说是一个失败者,因为我的应用程序 ID 被商店应用程序使用,因此无法删除。

但是,我通过一些实验发现,我可以通过手动编辑现有的应用程序ID来解决问题。事实证明,Xcode 对 ID 的名称非常挑剔,而不仅仅是 bundle ID。

对于典型的捆绑包 ID,例如 com.mycompany.appname,应用 ID 名称必须采用以下格式:

XC com mycompany appname

任何其他格式的名称都不会被 Xcode 看到。

如何检查您是否受到影响/如何修复

  1. 登录会员中心。
  2. 单击 "Certificates, Identifiers & Profiles"。
  3. 在左侧导航栏中,单击 "App IDs"。
  4. 使用您的捆绑包标识符找到应用程序 ID。
  5. 如果该 App ID 的名称格式不正确(如上所示),请单击它,然后单击“编辑”按钮。
  6. 更改名称并单击“完成”。
  7. 享受减轻压力和愤怒的感觉。

P.S。如果您使用的是 Xcode 7.3,则存在一些相关问题,即使您按照我上面提到的那样修复名称,它也不会自动为您创建正确的分发配置文件。解决方案是降级到 7.2.1 或 7.3 Beta 或使用像 fastlane/sigh.

这样的工具

听起来很愚蠢 - 请确保您的 供应配置文件 在“构建设置”选项卡中正确设置,在“代码签名”部分,并且它匹配代码签名身份证书。

在我的例子中,我正确设置了 A​​d-Hoc dist & Release 配置文件,但是 DEBUG 设置为自动。