【问题标题】:Provisioning profile doesn't include the application-identifier and keychain-access-groups entitlements配置文件不包括 application-identifier 和 keychain-access-groups 权利
【发布时间】:2019-08-03 14:41:04
【问题描述】:

我已经尝试了所有其他问题并搜索了我已经可以搜索的所有内容,许多其他问题涉及正在更新的现有应用程序或拥有开发者帐户的人,但这就像我第二次使用 Xcode 和它以前工作过。

这只是突然发生的。我不断收到这两个错误,它允许我运行模拟器但不能构建到我的 iPhone 上:

  1. 自动签名无法解决“LearningSpriteKit”目标的权利问题。 自动签名无法将 application-identifier 和 keychain-access-groups 权利添加到您的配置文件中。切换到手动签名并通过从开发人员网站下载匹配的配置文件来解决问题。或者,要继续使用自动签名,请从您的权利文件中删除这些权利,并从您的代码中删除它们的相关功能。

  2. 供应配置文件“iOS 团队供应配置文件:#####.LearningSpriteKit”不包括应用程序标识符和钥匙串访问组权利。

【问题讨论】:

  • 也遇到过这种情况。可能是全球性的事情,请其他开发者在ios-developers.slack.com上确认
  • 这里也一样!不能在iphone上运行。只有模拟器
  • 这里也一样。不是付费开发者帐号。
  • 是的,我也面临同样的问题。我认为这也是免费帐户的问题
  • 同样的问题,付费账户

标签: ios xcode code-signing provisioning-profile entitlements


【解决方案1】:

这个问题与Bug 1534145. SSL.com: P-384 curve / ecdsa-with-SHA256 certificates有关。

Apple 的一位代表估计有 558,000 个证书将失效:Bug 1533655. DigiCert: Apple: Non-compliant Serial Numbers

GoDaddy、Google、Apple 和 Facebook(这可以解释为什么 Facebook 今天会出现故障)受到影响。

他们正在努力解决这个问题。

这可以解释我们的问题,伙计们!

更新:问题已解决。尝试刷新您的项目。

【讨论】:

  • 很高兴听到 Apple 正在处理此问题/已就该问题发表意见
  • 无效证书无法解释为什么 Apple 发布的新证书缺少必要的权利。
  • @DavidGish 根据我从报告中收集到的信息,他们目前实际上没有颁发任何证书。他们在 2019-03-7 停止了 TLS 证书的颁发,不确定这是否适用或如何适用。
  • 这个有更新吗?我觉得这应该有最高优先级。有什么新的变通方法吗?
  • 现在我没有收到此错误,而是收到“iPhone 已拒绝启动请求”.. 有什么想法吗?
【解决方案2】:

解决方法:更改 Bundle Identifier 和/或 Version

【讨论】:

  • 在这里工作。如果没有,请尝试禁用“自动管理签名”,删除有问题的配置文件,更改捆绑标识符,启用自动签名,然后添加您的团队。
  • 不起作用。它没有给出错误或警告,但应用程序拒绝在设备上启动,就像这里描述的 stackoverflow.com/questions/45421179/…
  • 请为 Bundle Identifier 和 Version 写什么?我是在自己的办公室工作的自雇开发人员。我分别为它们写了两个字符串和一个数字,符号错误消失了,但我认为无法使用 iOS 工具包(在 Qt Creator 上)运行我的应用程序!
  • @Fedorov7890 要在设备上启动应用程序,您需要禁用方案中的 debug executable 复选框,如此评论 iPhone has denied the launch request 中所述。在删除我的开发帐户、清理 ~/Library/MobileDevice/Provisioning Profiles 并更改捆绑标识符后,此解决方法对我有用。
  • @david 谢谢,我已经找到了不禁用调试可执行文件的替代解决方案,stackoverflow.com/a/55160300/3824328
【解决方案3】:

我在 Time Machine 工作时从 Time Machine 恢复了一个配置文件,在启动时,Xcode 立即将其删除并替换为一个新配置文件。关键区别似乎是旧配置文件具有get-task-allow 权利,而新配置文件没有权利。这在 Apple 的最后肯定被打破了。

编辑:权利还应包括钥匙串访问组,但同样,根本没有权利。应该是这样的:

【讨论】:

    【解决方案4】:

    编辑

    根据最新更新,Apple 已成功解决 自动编码 使用免费帐户登录问题。

    我试过了,我可以确认它已解决。

    请在最后尝试。

    更新

    用最新的 XCode 10.2 测试,运行良好 + 他们改进了 整体 Xcode 和协同设计功能的性能。

    当我从 Xcode 创建一个新的配置文件时,我也面临同样的问题,如果我去其他项目并在那里检查,我也会面临与以下相同的问题。

    由于这个问题,我的任何项目都不能使用旧的配置文件和证书构建。

    奇怪的问题,所以我检查了一个新创建的 Profile 并与旧的进行比较,发现 App ID 未知,并且新创建的配置文件中没有 Entitlement 详细信息。

    查看以下新旧配置文件比较的屏幕截图:

    旧档案:

    新个人资料:

    这意味着它无法在新配置文件中设置 App IdEntitlements。所以最终结果不适用于所有旧配置文件并在所有项目中给出相同的错误。

    问题解决方法:

    第 1 步: 转到 Provisioning Profile 文件夹(路径:~Library ▸ MobileDevice ▸ Provisioning Profiles)。

    或使用快捷方式直接跳转到此文件夹,例如 CMD + Shift + G 并输入 ~/Library/MobileDevice/Provisioning Profiles 它将重定向您的查找器直接在 Provisioning Profiles 文件夹中。

    第 2 步: 按修改日期对该文件夹中的文件进行排序。

    第 3 步:检查具有未知 App Id 的配置文件并删除所有未知配置文件。

    第 4 步:返回 Xcode 并检查所有旧项目是否按预期工作。

    注意:确保在进行上述更改时没有打开任何项目。 否则,它将使用 Unknown App Id 创建一个新的配置文件。

    我希望这会有所帮助,Apple 会尽快解决这个错误!

    【讨论】:

    • 请问~库路径在哪里?
    • @Franky ~/Library/MobileDevice/Provisioning Profiles。尽管此修复程序对我(和其他人,如其他答案中所见)不起作用。您的里程可能会有所不同。
    • @Bilfred 我的 macOS X 是 Sierra 10.13.6,~Library 中没有这样的路径!
    • 谢谢,请注意,该文件夹中只有一个 ..mobileprovision 文件,该文件包含三个部分:iOS TEAM PROVISIONING PROFILE证书提供设备。在 iOS TEAM PROVISIONING PROFILE 中有一行带有 App Unknown ID: 的行,如 this image。现在我应该删除文件吗?
    • 是的,删除该文件,再试一次,苹果解决了上述问题。
    【解决方案5】:

    Apple 似乎打破了自动签名系统。 我正在玩一些项目,而 Xcode 只是获取了不正确的配置文件。

    这对我有用:

    1. 在项目目标中关闭“自动管理签名”
    2. 转到~/Library⁩/⁨MobileDevice⁩/⁨Provisioning Profiles⁩
    3. 删除以前下载的配置文件
    4. 再次开启“自动管理签名”

    【讨论】:

    • 对我来说这行不通。我也认为你的意思是 ~/Library/MobileDevice/Provisioning Profiles
    • @Fedorov7890 是的,已更正。你看到了什么信息?
    • 备注:看起来它适用于昨天和之前创建的项目,但不适用于今天的项目
    • 对我来说,它的工作。我正在为 Appium 构建“集成应用程序”。感谢 Oleh Zayats 提供的解决方案。
    • 这里解决了我大约 5 个小时的问题>。
    【解决方案6】:

    更新:此解决方案在 2019/Mar/20 7:00 UTC+0 仍然有效

    解决方案:无需重新安装 Xcode。我使用了一个全新的免费 AppleId,但后来检查了我的旧 AppleID,它也可以工作。

    1. 在 Xcode 中,在 General 选项卡下,取消选中 Automatically manage signing 选项
    2. 关闭 Xcode。
    3. 删除~/Library/MobileDevice/Provisioning Profiles中的旧配置文件:

      cd ~/Library/MobileDevice/Provisioning\ Profiles
      
      rm -rf *
      
    4. 在 MacOS 上,运行 LaunchpadOtherKeychain Access 并删除所有与 iPhone 开发相关的证书,如图中以下四个:

      • Apple 全球开发者关系认证机构
      • 开发者 ID 证书颁发机构
      • iPhone 开发者:您的姓名或电子邮件

    5. 卸载 iPhone 上的旧应用程序。重启 iPhone 和 Mac

    6. 打开 Xcode 并更改应用的 Bundle Identifier,至少一个字符(稍后您可以恢复此更改)
    7. 在 Xcode 中启用 Automatically manage signing 选项。

    在此之后,您应该能够在您的设备上运行和调试您的应用。

    如果您遇到“iPhone 已拒绝启动请求”问题,解决方案在 answer to Stack Overflow question iOS 12 iPad Denied Launch Request - Xcode 中。

    简而言之,您需要在 Xcode 中转到菜单 ProductSchemeEdit Scheme... 并选择 Executable :在发布时询问

    【讨论】:

    • 如果我删除调试器选项,拒绝午餐,我无法在使用设备时进行调试。只有模拟器
    • @RenanAguiar 您不需要删除调试器选项,只需将下拉列表中的“可执行文件”更改为“启动时询问”即可。请参阅我的帖子中的链接,该链接显示了如何在图片中执行此操作。
    • 当我这样做时,同样的事情会发生。我看不到调试器图标,例如步骤和位置。仅在模拟器上
    • 调试器似乎功能不全。我可以从设备获取控制台输出,但断点不起作用;也不会跳过/进入命令
    • 我可以确认上述答案对我有用。具体来说,该应用程序被构建、编译并下载到我的 iPhone 上。我正在使用免费的开发者帐户。 (2019 年 3 月 14 日)
    【解决方案7】:

    这个问题已经解决了,但是有些人还是有问题。如果您是其中之一,请尝试以下操作:

    1.在目标设置的常规选项卡中 - 取消选中自动管理签名选项

    2. 关闭 Xcode(完全关闭,而不仅仅是您的项目)

    3.清除.mobileprovision~/Library/MobileDevice/Provisioning Profiles/下的文件

    4.Keychain Access中,删除以下内容:

    • iPhone 开发者:yourremail@email.com
    • 开发者 ID 证书颁发机构
    • Apple 全球开发者关系认证机构 3.

    5.删除您 iOS 设备上的应用

    6.重新启动您的 Mac 和 iOS 设备

    7.再次打开Xcode

    8. 更改Bundle Identifier(即使是单个字符,您也可以在使用后将其改回原来的)

    9.勾选Automatically manage signing选项

    10. 使用 USB 连接您的 iPhone/iPad。

    11.确保您信任 iOS 设备上的证书

    这应该对你有用。

    【讨论】:

    • 非常感谢,这是对我有用的第一件事
    • 它是否为您解决了“iPhone 已拒绝启动请求”的问题?
    • @Fedorov7890 它为我做了,我假设为 ShadowLightz
    【解决方案8】:

    现在看来这个问题已经解决了,个人账号又可以自动退出应用了。

    关于@Paul 的回答,与卸载Xcode 无关。它是从服务器端修复的。

    唯一需要做的就是从您的钥匙串中删除 Apple 开发者证书(用于个人帐户),以便 Xcode 重试生成并下载一个新证书。

    【讨论】:

    • 仍然无法在设备上安装。即使有了新的免费 appleid 和证书
    • 您删除了所有证书吗?
    • 是的,我做了,除了我清除了 ~/Library/MobileDevice/Provisioning\ Profiles 和 ~/Library/Developer/Xcode/DerivedData 并重新启动了 iPhone
    • 终于可以使用这个解决方法stackoverflow.com/a/54990369/3824328
    • 在哪里删除证书?什么路径?
    【解决方案9】:

    解决办法如下:

    1. 让 Xcode 打开。

    2. 选择您的开发者帐户,让错误再次出现。

    3. 转到钥匙串应用

    4.a) 转到证书部分

    4.b) 删除所有(有效和无效)证书(我有三个有效的和许多无效的!)

    1. 删除最后一个证书后,macOS 会自动为活动的开发者帐户重新创建一个新证书。

    2. 在您的 iDevice 中运行您的应用程序。您需要输入系统密码才能将新创建的证书添加到钥匙串中。

    如果在第二次运行中显示

    您的 iPhone 拒绝了启动请求

    只要去:

    产品方案 → *编辑方案:取消选中“调试可执行文件”

    希望它能解决你的问题。

    【讨论】:

    • 它没有!我无法在设备上调试或使用位置
    • 嗨,谢谢。请问如何进入“钥匙串应用程序”?什么路径?
    • 您现在可能已经找到了,但钥匙串访问应用程序位于 Applications->Utilities
    • 我仍然无法使用带有这些答案的 iphone 进行调试
    【解决方案10】:

    我通过以下步骤使其工作:

    1. 转到 Xcode
    2. 首选项
    3. 帐户
    4. 管理证书
    5. 加号
    6. iOS 开发
    7. 完成
    8. 下载手册配置文件
    9. 关闭
    10. 去你的目标
    11. 将开发团队改为无
    12. 将开发团队更改为您以前的团队

    它应该可以工作。

    【讨论】:

      【解决方案11】:

      我终于可以再次部署到我们的 iOS 设备了。以下是我为使其工作而采取的步骤。

      首先,我关注了all 10 steps in Zameer's answer here。我在下面复制了它们:

      1. 在 XCode 中打开您的项目。
      2. 从项目导航器中选择您的项目,然后从列中选择您的目标
      3. 点击常规标签并在签名部分下,确保“自动管理签名”已启用。
      4. 点击功能标签并开启“应用程序组”“钥匙串共享”设置。这可能会引发 “自动签名失败”弹出错误,点击取消即可。
      5. 这应该会在您的项目导航器的项目文件夹中为您生成一个名为 nameProject.entitlements 的权利文件。
      6. 将此权利文件移到文件夹,就在您的项目文件下方。
      7. 再次选择您的目标并返回功能选项卡以关闭“应用程序组”“钥匙串共享” " 设置。这可能会再次引发 “自动签名失败” 弹出窗口 错误,只需单击取消即可使其消失。
      8. 现在选择目标上方的项目,然后转到建筑设置标签。
      9. 向下滚动到 Signing 标题下的 Code Signing Identity 设置,然后从每个下拉菜单中选择 iOS Developer
      10. 在上面的 Signing 标题下,双击 Code Signing Entitlements 旁边的文本字段,然后输入您的姓名 权利文件,nameProject.entitlements

      完成这 10 个步骤后,XCode 中的 2 条红色权利错误消息消失了,我能够构建 XCode 测试应用程序并将其部署到 iPhone 上并运行它。

      虽然 XCode 测试应用程序可以构建和部署,但我在使用 Xamarin 的 PC 上进行开发,但我无法将 Xamarin.iOS 应用程序部署到我的 iOS 设备,并且在 Visual Studio 中不断收到错误:the executable was signed with invalid entitlements。我做了以下事情,现在我可以部署我的 Xamarin 应用程序并在我的 iOS 设备上运行它:

      1. 我从 Mac 上的 ~/Library/MobileDevice/Provisioning Profiles 目录中删除了配置文件。 XCode 立即生成了一个新的配置文件(我不确定这一步是否必要,但我只是在写它,因为我就是这样做的)。
      2. 我更改了我的Xamarin.iOS.csproj 文件并从CodesignEntitlements 元素中删除了Entitlements.plist,所以它现在看起来就像<CodesignEntitlements></CodesignEntitlements>。 Visual Studio 自动将两个元素添加到项目中的同一属性组,这可能不是必需的,但我想我会提到:<CodesignExtraArgs /><CodesignResourceRules />

      【讨论】:

        【解决方案12】:

        也许论坛帖子 [iOS 12 SDK] - deadline March 2019 - Legacy Mode 可能会有所帮助。

        它谈到 Apple 拒绝在 2019 年 3 月的 SDK 12 下构建 iOS 应用程序(OP 从 2018 年 12 月开始)。

        我还没有尝试过,但它可能与问题有关。我有一个免费的开发者帐户,也遇到了这个错误。

        这是链接更改时的屏幕截图(以下屏幕截图1)。

        这是来自first screenshot 的链接(下面的屏幕截图2

        1

        2

        【讨论】:

        • 有趣,但我们有 XCode 10.1 显示此问题,并且 10.1 确实支持 SDK 12。
        • 好吧,我已经设法通过在 Xcode 中清理项目并仅通过模拟器通过我的 IDE(我正在使用 VSC)在调试中运行来获得临时解决方法。
        • 正如 OP 所说,模拟器似乎不受该问题的影响。它似乎只影响真实设备。
        • 是的,我无法在物理设备上加载。希望苹果能尽快解决这个问题。
        【解决方案13】:

        此错误还有另一个潜在来源。如果您在 Xcode 环境中没有设置有效的签名开发证书,则会抛出 OP 发布的类似错误。

        您可以通过 Apple 链接 here 查看您的开发证书状态。

        【讨论】:

        • 我使用免费帐户.. 听从人们所说的,现在我收到一个关于等待 7 天的错误......我不会为在我的设备上测试它付费。
        【解决方案14】:

        适用于 macOS Big Sur 测试版

        1. 在 Xcode 11 中存档
        2. 使用 Xcode 12 beta 管理器上传(窗口 -> 管理器)

        【讨论】:

        • 谢谢。谢谢你。谢谢。
        • 这对我有用! macOS Big Sur 与旧 Xcode 存在问题
        • 拯救我的一天。谢谢!
        • @AndrewMorris 老实说,我会随机尝试任何我能想到的方法,直到成功为止。所有其他答案都指向配置配置文件和证书以使您真正偏离正轨,这无济于事。
        【解决方案15】:

        对我来说,它终于再次起作用了。他们只是修复了它,或者我的其他任何步骤都有帮助:

        1. 卸载 Xcode 和所有相关文件(使用 AppCleaner)
        2. 通过 App Store 安装 Xcode
        3. 更改应用的Bundle Identifier
        4. 从钥匙串中删除所有“iOS 开发者”钥匙

        【讨论】:

        • 这首先解决了我的问题,但几分钟后又出现了问题
        【解决方案16】:

        这是一个临时解决方法:

        1. Change Bundle IdentifierTargetGeneralIdentityBundle Identifier(设置这个与现在不同)
        2. 更改版本目标常规身份版本
        3. 禁用调试可执行文件产品方案编辑方案(取消选中显示“调试可执行文件的框")
        4. 删除配置文件~/Library/MobileDevice/Provisioning Profiles 删除此文件夹中的所有内容。

        您现在应该能够在模拟器和设备上构建和运行项目了。

        【讨论】:

        • 现在我明白了:无法启动 /private/var/containers/Bundle/Application/52553D96-4B6A-4680-B77C-C04895B7759C/dois.app
        猜你喜欢
        • 2017-06-11
        相关资源
        最近更新 更多