验证iOS应用程序时出现com.apple.developer.associated-domains问题

33
我在使用Xcode中的Organizer验证我的项目时,遇到了以下错误:

无效的代码签名授权。您应用程序的包签名包含不受iOS支持的代码签名授权

具体地,在Payload/MyApp.app/MyApp中,键com.apple.developer.associated-domains的值*不受支持。

我在谷歌上找不到任何相关答案,请希望有人能帮助我?


检查你的 entitlement 文件和 info.plist 文件作为开始。 - Paulw11
我投票关闭此问题,因为它涉及发布到“应用商店”的政策和程序,而不是编程。请参见开发人员中心的应用商店问题是否属于主题? - Makyen
8个回答

41

我曾经遇到过与Xcode 5.1.1类似的问题,并且在网上找到的任何解决方法都无法解决。但是,这对我有用:

  1. 在开发者成员中心的“证书、标识和描述文件”下,在左侧列中的“标识符”和“应用程序标识符”下选择您的应用程序ID。

  2. 选择“编辑”,然后禁用“关联域名”。

应用程序标识符

禁用'关联域名'


Jibeex的回答对于那些想要修复相关域名而不是删除它们的人来说,将是一个有用的补充。 - Tum
启用关联域名服务后,是否需要重新生成配置文件? - Gaurang Chokhariya

19
最后,我发现关联域只在Xcode6的“功能”选项卡下可用。如果我将此部分留空,验证器似乎不满意。在该部分添加我的域名项目后,我成功通过了验证过程。 有关关联域的更多信息,请参见此链接。

https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AddingCapabilities/AddingCapabilities.html

我是使用Xcode 6 GM版本。 感谢@Sabo的建议。我添加了一个关联域名设置的截图。你只需要点击加号,然后用你自己的替换"example.com"即可。

enter image description here


嗨,我也遇到了这个问题。我需要添加什么来关联域名?请用示例说明。谢谢。 - Fire Fist
1
为什么不接受你的答案呢?这是正确的解决方案。 - Acey
@Acey 不是很准确:如果您不需要关联的域名,应该从开发者门户网站上的应用程序 ID 中将它们删除。 - Dan Rosenstark
这应该附加到被接受的答案中。两种情况都可以是有效的:需要关联域或删除它们。 - Tum

9

我遇到了同样的问题。

以下是解决此问题的方法,希望能帮到其他人。

  • 登录iOS开发者中心并进入“证书、标识符和描述文件”页面。

  • 选择“标识符/应用程序ID”。

  • 为您的应用选择适当的ID。

  • 点击底部的编辑按钮。

  • 取消勾选“关联域名”并点击“完成”。

您将需要重新生成与此ID相关的任何配置文件。

上次提交我的应用程序到应用商店时,我从未选择过这个选项。

我猜测iOS/Dev Center的更新可能会添加它,但我不确定。我只知道现在我能够验证我的软件包并提交到应用商店了。


谢谢@Vivo。它有效。重要的是,将不得不重新生成与此ID相关联的任何配置文件。 - Meet Doshi

5

对我来说,这个问题是:“配置文件“profile_name”不支持相关域能力。”

我需要在iTunes账户的配置文件中启用域名能力。

只需更新App ID配置和配置文件,然后通过双击在Xcode中安装即可。

enter image description here

它对我起作用了

enter image description here


在2021年,这已经不再与iTunes相关,而是在developer.apple.com上。尽管如此,截图仍然准确。 - Steven Love

4

只需在您的App ID中关闭关联域名(在developer.apple.com上),并创建一个新的分发证书文件(如果您没有手动创建文件,则至少删除之前的文件)。

我发现即使您关闭服务,该值也会固定在证书文件中。如果您在提交应用程序之前打开权利证明细节,您可以看到com.apple.developer.associated-domains权利证明(直到被删除为止)。

有了这个,您就不需要虚假授权条目。


1
在大多数情况下,您只需更新受影响的配置文件,然后在Xcode中刷新即可。 - Dan Rosenstark
我发现仅仅关闭它并不能摆脱这个权限。在iTunes Connect上启用关联域名,然后在XCode的功能选项下创建一个虚假条目是有效的。一旦我完成了这些步骤,我就可以再次将所有内容关闭。 - user2002649
@user2002649 如果您不重新创建配置文件,那么您将不得不伪造一个条目,如果您可以接受这种方式,那么它是正确的。但我不喜欢这种方法。 - Geri Borbás

3
在工程权利文件的关联域下,添加“applinks:”并链接到你的关联域名(在启用了能力选项中的关联域后)。请注意不要删除HTML标签。

1

我在项目设置中找到了另外两个简单的解决方案。
解决方案1:
Targets(目标) > 选择Target(目标) > Build Settings(构建设置) > Signing(签名) > 清除Code Signing Entitlements(代码签名权利)。

enter image description here

解决方案2:
项目> *.entitlements > 权限文件 > 删除关联域名。

enter image description here


1
如果您在使用苹果手表时遇到此问题,可能是由于您的应用程序 ID 在 Apple 开发者门户中自动获取了此属性,感谢 Xcode。您可能有三个应用程序 ID(一个用于主要应用程序,一个用于 watchkitapp 和一个用于 watchkitextension)。
  1. 关闭所有三个应用程序 ID 中的关联域。
  2. 重新生成任何配置文件。
  3. 在 Xcode 中刷新。
请忽略任何要求手动删除您的配置文件的指示。它们可以正确刷新且没有问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接