Apple Store 提交失败并出现错误 ITMS-90046,但关联域不在权利中

Apple Store submit fails with Error ITMS-90046, but Associated Domains is not among entitlements

当我第一次构建我的应用程序和 Watchkit 应用程序时,我启用了 "Associated Domains" 功能。我已在 watchkit 扩展和配套应用程序的 "Capabilities" 面板中禁用它,并确认密钥已从每个 info.plist 中消失。

我已经转到 Apples 的 "Certificates, Identifiers and Profiles" 页面,为每个 Watchkit 应用程序、扩展程序和应用程序选择了应用程序 ID,未勾选 "Associated Domains",为每个重新生成配置文件,下载并安装了它们。

我已经完成了 Ctrl-Shift-Command-K 完全清理、重新启动和重建。在提交到应用商店时,我收到以下错误消息。

我在 xcode 中进行了项目搜索,但找不到 com.apple.developer.associated 域密钥。我已经搜索了构建目录,nada。我不相信这个键实际上存在于我的代码中,但 iTunesConnect 似乎认为它在那里并设置为“*”。

我认为这是一个错误。

我通过简单地在配套应用程序和 Watchkit 扩展的 Entitlements.plist 中插入一个新的 Array 项来管理解决方法:"com.developer.apple.associated-domains" 和 webcredentials 的有效域:string。虽然这不会有任何实际效果,因为我的配置文件和应用程序或扩展的功能选项卡都没有为关联域启用,但它停止了 itunesconnect 上的任何代码扫描器被不存在的密钥的无效值“*”绊倒.

解决这个问题:

  • 登录 Apple Developer Center
  • 转到证书、标识符和配置文件。
  • 转到 Identifiers/App 个 ID。
  • Select 您的 App ID 和编辑
  • 取消选中关联域
  • 保存

您将必须重新生成与 App ID 关联的所有配置文件。出于某种原因,"Associated Domains" 检查了我的应用程序。 取消选择它使 AppStore 提交工作。

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

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

例如

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

请记住 [:port number] 是可选的,但 <service><fully qualified domain> 是必需的!

  • 得到:"The executable was signed with invalid entitlements" 留言
  • 使用 Google 搜索给出了一些有用的提示,但 ^ 消息确实 不停
  • 前往:Xcode > Window > 设备
  • 然后:在设备的左下角Window我选择 "Show the device console" 按钮
  • 从日志的按钮开始,我扫描了信息并 发现问题并在短时间内修复
  • 就我而言,它涉及 com.apple.developer.associated-域 权利,我需要保留关联域
  • 以后每当出现设备错误消息时,我都会使用设备控制台,真是省时
  • 在短时间内解决了问题
  • 顺便说一句,谢谢大家的帮助

正如 中的其他人所述,我能够通过执行清理构建来解决问题。 作为记录,我收到错误代码 ITMS-90164.

根据应用程序提交失败的错误,我了解到您的配置文件可能仍然启用了 "associated-domains",但它在您的应用程序 "entitlements" 文件中丢失了。

所以显然会有两种情况。

场景一:你要不要支持"associated-domains"。应该为 "Universal Links".

等功能启用此功能

请参考以下link:

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

在这种情况下,请不要手动编辑您的 "entitlement" 文件。而是按照步骤操作。

1。 Select 你的项目文件在 Xcode.

2。 Select "Targets"

下的适当目标

3。 Select "Capabilities" 紧挨着 "General"

4。您可以看到 "Associated Domains" 的选项,如下所示。

5。启用“关联域”。如果启用“关联域”,Xcode 将要求您登录开发者帐户,它将与您的 AppId 和配置文件同步。

如上图所示,启用“关联域”时会做两件事

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

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

还要确保您的 、内部和应用分发配置文件已正确更新并同步。

大部分工作Xcode自己会完成,我们只需要倾听和理解。

场景 2:您的应用不需要“关联域”功能。 在这种情况下,请按照@Ciprian Rarau 给出的答案进行操作。解释得很好。