问题描述
我非常担心我的证书/个人资料,需要帮助来解决此问题。我的应用程序位于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月以来一直没有生成新的Developer ID配置文件,并且已经在我的应用程序中放置了多个应用程序组,并发送了多个更新和公证。经过大量研究,我发现它可能与我的开发者ID配置文件有关,因此我在Apple开发者网站上对其进行了调查,发现状态显示为无效。我制作了一个新版本,删除了一个无效的版本,并尝试了归档一个新版本并将其发送给Apple公证人的步骤,但最终遇到了同样的错误。
我做了更多研究,偶然发现https://developer.apple.com/support/certificates/,发现删除个人资料可能导致我不更新应用商店中当前的应用。我是否删除了全部访问权限以更新我的应用?
我仍然无法弄清公证问题,现在我非常担心自己搞砸了再次更新应用程序的机会。您能帮我解决这两个问题吗?
我有一个Mac更新,我想尽快发送到App Store,但想在发送给用户之前先知道它是否安全。
解决方法
这里的问题是 App Groups
的权利不适用于 MacOS
,正如您在 Apple Developer 帐户的 i
门户上单击 Certificates,Identifiers & Profiles
时所看到的那样。
显然,您仍希望将其用于您的 iOS
版本的应用程序,但 MacOS
版本不需要它。 (虽然 MacOS 版本仍然可以使用您的应用组,但不需要授权)。
要解决此问题,您需要为 .entitlements
构建使用与 MacOS
构建不同的 iOS
文件。
首先,复制您当前的 .entitlements
文件。最简单的方法是按住 Alt
键,同时稍微拖动 .entitlements
文件。它会制作一个副本。将其重命名为 Original Name-MacOS.entitlements
之类的名称。
下一步是打开您的 Build Settings
并在搜索栏中输入 entitlements
。
您将看到针对 Debug
和 Release
构建显示的原始权利文件。选择 Debug
行,然后单击 +
按钮。单击 Any SDK
并将其更改为 Any macOS SDK
。现在将权利文件的名称更改为您的 MacOS
变体。
重复 Release
构建的过程,如下所示。
最后一步是从您的 MacOS
.entitlements
文件中删除有问题的权利。这必须手动完成,因为 Signing & Capabilities
选项卡只会显示原始 iOS
文件中的权利。因此,单击您的 MacOS
.entitlements
文件并删除 App Groups
条目。
Clean
你的项目,Build & Run
、Export
等等,你应该很高兴。
一些用户能够通过在Xcode的“签名和功能”选项卡上打开和打开我所有应用目标的应用组功能来解决此问题。