苹果商店提交失败,错误为ITMS-90046,但关联域名不在授权范围内。

13

当我第一次构建我的应用程序和Watchkit应用程序时,我启用了“关联域”功能。我已在watchkit扩展和伴侣应用程序的“功能”面板中禁用它,并确认每个info.plist中的密钥已经被删除。

我转到苹果公司的“证书、标识符和配置文件”页面,选择了Watchkit应用程序,扩展程序和应用程序的App ID,取消了“关联域”,重新生成了每个配置文件,下载并安装了它们。

我执行了Ctrl-Shift-Command-K完全清理,重新启动和重建。提交到应用商店时,我收到下面的错误信息:

我在xcode中进行了项目搜索,但找不到com.apple.developer.associated-domains密钥。我搜索了构建目录,但什么也没有找到。我不认为这个密钥实际上存在于我的代码中,但iTunesConnect似乎认为它在那里并设置为“*”。

Xcode Organizer中的itms-90046错误消息屏幕截图

6个回答

24
为了解决这个问题:
  • 登录 Apple 开发者中心
  • 进入 Certificates, Identifiers & Profiles。
  • 进入 Identifiers/App IDs。
  • 选择您的 App ID 并编辑
  • 取消选中关联域名
  • 保存

您将需要重新生成与 App ID 相关联的任何配置文件。由于某些原因,我的应用程序的“关联域”被选中了。取消选择后,App Store 提交工作正常。

输入图像描述

输入图像描述


是的,这也是我的问题,很好的图片和描述。我不知道为什么有人会对此进行负评... - nsij22
如果问题仍然存在,请删除并刷新您的配置文件。 - jwswart
13
我可以给它点“踩”的,但我是个好人,所以我的理由是:这种解决方案有些像“如果功能有问题,就把这个功能删掉”——其实这根本不是解决方案! - Евгений Шевченко
1
在我的情况下,它是自动启用的,而不需要请求。并非总是需要关联域。要查看是否需要,请在此处检查:(搜索关联域)https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AddingCapabilities/AddingCapabilities.html Apple表示:“如果您希望将应用与域相关联以访问特定服务(例如Safari保存的密码和活动继续),请启用关联域。” - Ciprian Rarau
在我的情况下,我确实想要使用关联域名,并且我有意启用了它,但是我仍然遇到了相同的错误。这个答案对我没有帮助。 - Mike C.

9

我认为这是一个错误。

我通过在 companion 应用程序和 Watchkit 扩展的 Entitlements.plist 文件中插入新的数组项来实现了一种解决方法:"com.developer.apple.associated-domains",并且提供有效的域名字符串作为 webcredentials。虽然这对于我的证书文件或应用/扩展的功能表未启用相关联的域,没有任何实际效果,但它阻止了 iTunes Connect 中的代码扫描器因 "*" 的无效值而跳闸。

Entitlements.plist 的截图


对于遇到同样问题的人:苹果已经批准了我的应用程序,并采取了这种解决方法。 - brianfit
嗨,Brian,我可能已经找到了为什么似乎需要关联域名以及如何删除它的原因。请看下面我的回答。 - Ciprian Rarau
谢谢Ciprian,但是我已经禁用了它,并重新生成和安装我的配置文件。实际上,有几次! - brianfit
因为取消关联域名后奇怪的问题消失了。我也可能在XCode / Preferences / Accounts中刷新了我的供应配置文件。 - Ciprian Rarau
如果您的主要应用程序使用“关联域”功能,则这是一个非常有用的解决方案。 - Valentin Shergin

6

如果您想使用关联域名,请确保在Entitlements.plist>com.developer.apple.associated-domains中的每个条目都使用以下格式:

<service>:<fully qualified domain>[:port number]

eg.

webcredentials:www.example.com
applinks:www.example.com
activitycontinuation:www.example.com

请记住,[:端口号]是可选的,但<服务><完全限定域名>是必需的!

在iOS应用程序中实现深度链接应该使用哪个服务? - Amit Singh
仅限应用链接:www.example.com - Blank
1
我忘记了在每个关联域名的开头加上 "applinks:"。 - David Ben Ari
这是正确的答案,供那些真正希望使用深层链接并尝试提交其应用程序的人参考。苹果的文档并没有明确说明必须包含该服务。 - isaac
这是我需要解决问题的提示。(我错误地在域名前插入了“https://”模式。将其更正为仅域名即可解决问题。) - Dirk van Oosterbosch

3

根据应用提交失败的错误信息,我理解可能是您的配置文件仍然启用了“associated-domains”,但在应用程序的“entitlements”文件中缺少该项。

因此,显然会有两种情况。

情况1:您是否希望支持“associated-domains”。这应该为“通用链接”等功能启用。

请参考以下链接:

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

在这种情况下,请不要手动编辑您的“entitlement”文件。请按照以下步骤操作:
1. 在Xcode中选择您的项目文件。 2. 在“Targets”下选择适当的目标。 3. 选择“Capabilities”,该选项位于“General”旁边。 4. 您可以看到如下所示的“关联域名”选项。

enter image description here

5. 启用 "关联域名"。如果您启用了 "关联域名",Xcode 将会要求您登录开发者帐户,并且它将与您的 AppId 和配置文件同步。

如上面的截图所示,在启用 "关联域名" 时,它会执行两个操作:

  • 向您的授权文件中添加关联域名授权。
  • 将关联域名功能添加到您的 App ID 中。

如果在从 Xcode 和开发者帐户同步设置时出现任何问题,请检查以下复选框是否已启用。

enter image description here

请确保您的公司内部和应用程序分发的配置文件已经正确更新并同步。
大部分工作将由Xcode自己完成,我们只需要听取并理解。
情况2:您的应用程序不需要“关联域”功能。在这种情况下,请遵循@Ciprian Rarau给出的答案。它被很好地解释了。

2

0
  • 出现了“可执行文件签名的授权无效”的消息
  • 通过谷歌搜索得到了一些有用的提示,但是^消息并没有停止
  • 前往:Xcode > 窗口 > 设备
  • 然后:在设备窗口左下角选择“显示设备控制台”按钮
  • 从日志底部开始扫描信息,找到问题并在短时间内解决了它
  • 在我的情况下,这涉及到com.apple.developer.associated-domains授权,我需要保留associated-domains
  • 以后只要有设备错误消息,我就会使用设备控制台,真是省时省力
  • 在短时间内解决了问题
  • 顺便说一句,非常感谢大家的帮助

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