【问题标题】:Broken Developer Certificates and Profiles损坏的开发人员证书和资料
【发布时间】:2021-01-05 23:15:39
【问题描述】:

我非常担心我的证书/个人资料,需要帮助解决问题。我在 iPhone、iPad 和 Mac 的 Apple 应用商店中有我的应用,并且已经发送了多个更新。我最近刚刚将我的 Xcode 更新到 Xcode 12,并且无法再将我的 Mac Catalyst 版本的应用程序发送到 Apple 的公证服务并收到以下错误:

Cannot create a Mac Catalyst Developer ID provisioning profile for "<profile>".
The App Groups capability is not available for Mac Catalyst Developer ID provisioning profiles. Disable this feature and try again.
Provisioning profile failed qualification
Profile doesn't include the selected signing certificate.
Provisioning profile failed qualification
Profile doesn't support App Groups.

在此之前,我自 2 月以来没有生成新的开发者 ID 配置文件,并且在我的应用程序中已经有好几个月的应用程序组,并随它发送了多个更新和公证人。经过大量研究,我发现它可能与我的开发者 ID 配置文件有关,所以我在 Apple 开发者网站上查看了它,发现状态为无效。我制作了一个新版本,删除了无效版本,并尝试了归档新版本并尝试将其发送给 Apple 公证人的步骤,但最终得到了同样的错误。

我进行了更多研究并偶然发现了https://developer.apple.com/support/certificates/,发现删除个人资料可能会导致我无法更新应用商店中的当前应用。我是否删除了更新应用程序的全部权限???

我仍然无法弄清楚公证问题,现在我非常担心我已经搞砸了再次更新我的应用程序的机会。你能帮我解决这两个问题吗?

我有一个 Mac 更新,我想尽快发送到 App Store,但在发送给用户之前想知道它是否安全。

【问题讨论】:

    标签: xcode app-store-connect provisioning-profile mac-app-store mac-catalyst


    【解决方案1】:

    这里的问题是MacOS 无法使用App Groups 权利,正如您在Apple 开发者帐户的Certificates, Identifiers &amp; Profiles 门户上单击i 时所看到的那样。

    显然,您仍希望将其用于您的应用程序的iOS 版本,但MacOS 版本不需要它。 (虽然 MacOS 版本仍然可以使用你的应用组,但不需要授权)。

    要解决此问题,您需要为 MacOS 构建与 iOS 构建使用不同的 .entitlements 文件。

    首先,复制您当前的.entitlements 文件。最简单的方法是按住Alt 键,同时轻轻拖动.entitlements 文件。它会复制一份。将其重命名为 Original Name-MacOS.entitlements

    下一步是打开您的Build Settings 并在搜索栏中输入entitlements

    您将看到 DebugRelease 构建的原始权利文件。选择Debug 行,然后单击+ 按钮。单击Any SDK 并将其更改为Any macOS SDK。现在将权利文件的名称更改为您的 MacOS 变体。

    Release 构建重复该过程,使其如下所示。

    最后一步是从您的 MacOS .entitlements 文件中删除有问题的权利。这必须手动完成,因为Signing &amp; Capabilities 选项卡只会显示原始iOS 文件中的权利。所以点击你MacOS.entitlements文件并删除App Groups条目。

    Clean 你的项目,Build &amp; RunExport 等等......你应该很高兴。

    【讨论】:

    • 非常感谢您的回答,最终在我的应用程序中禁用了小部件和 siri 意图,并使用您的回答为 iOS 和 MacOS 使用了不同的权利。谢谢!
    • @thecoolwinter 和 Darren 如果我仍然想在 Mac 上使用我的小部件,我不需要应用程序组来与小部件通信吗? iOS 14 主屏幕小部件需要应用组才能工作
    • MacOS 不支持应用程序组,所以我认为不需要。我从未制作过 MacOS 小部件,但您是否测试过它是否默认使用与应用相同的容器?
    • @ap123 我还没有对此进行大量测试,但我可以通过使用#if targetEnvironment(macCatalyst) 在文件的默认容器中查找小部件,使其最初开箱即用。这就是我目前所知道的,我只是走我稍后会做的路线,然后把它全部撕掉以构建催化剂
    【解决方案2】:

    一些用户可以通过在 Xcode 的 Signing & Capabilities 选项卡上关闭和打开我所有应用目标的 App Groups 功能来解决此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-05
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-29
      相关资源
      最近更新 更多