【问题标题】:Apple Store submit fails with Error ITMS-90046, but Associated Domains is not among entitlementsApple Store 提交失败并出现错误 ITMS-90046,但相关域不在权利范围内
【发布时间】:2015-04-26 12:33:49
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ios xcode watchkit provisioning xcode-6.2


    【解决方案1】:

    要解决这个问题:

    • 登录苹果开发者中心
    • 转到证书、标识符和配置文件。
    • 转到标识符/应用程序 ID。
    • 选择您的应用 ID 并编辑
    • 取消选中关联域
    • 保存

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

    【讨论】:

    • 是的,这也是我的问题,漂亮的图片和描述我不知道为什么有人会否决这个......
    • 如果问题仍然存在,请删除并刷新您的配置文件
    • 我也可以投反对票,但我是个好人,所以原因是:这种解决方案类似于:“如果功能有问题,只需删除此功能” - 这不是解决方案全部!
    • 在我的情况下,它是自动启用的,无需请求。您并不总是需要关联域。要查看您是否需要它,请在此处查看:(搜索关联域)developer.apple.com/library/ios/documentation/IDEs/Conceptual/… Apple 说:“如果您希望您的应用与域关联以访问特定服务,例如 Safari 保存的密码和活动继续,请启用关联域。”
    • 在我的情况下,我实际上确实想使用关联的域并且我特意启用了它,但我得到了同样的错误。这个答案对我没有帮助。
    【解决方案2】:

    我认为这是一个错误。

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

    【讨论】:

    • 对于有相同问题的任何人:Apple 今天批准了我的应用程序,并采用了这种解决方法。
    • 嗨,Brian,我可能已经找到了为什么似乎需要关联域以及如何删除它。请参阅下面的答案。
    • 感谢 Ciprian,但我已经禁用它并重新生成并重新安装了我的配置文件。事实上,有几次!
    • 奇怪,因为取消选中关联的域是我做的。我可能还从 XCode/Preferences/Accounts 刷新了我的配置文件。
    • 如果您的主应用确实使用associated-domains 功能,这是非常有用的解决方案。
    【解决方案3】:

    如果您想使用关联域,请确保 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] 是可选的,但 &lt;service&gt;&lt;fully qualified domain&gt; 是必需的!

    【讨论】:

    • 在 iOS 应用中应该使用哪个服务来实现深度链接?
    • 仅应用链接:www.example.com
    • 我在每个关联域的开头都缺少“applinks:”。
    • 对于真正希望使用深度链接并尝试提交其应用程序的任何人来说,这都是正确的答案。 Apple 的文档没有明确说明必须包含该服务。
    • 这是我需要解决问题的提示。 (我错误地在域之前插入了“https://”模式。将其更正为仅修复它的域。)
    【解决方案4】:

    从应用程序提交失败的错误中,我理解可能是您的配置文件仍然启用了“关联域”,并且在您的应用程序“权利”文件中缺少它。

    所以显然会有两种情况。

    场景 1:您想支持“关联域”吗?应该为“通用链接”等功能启用此功能。

    请参考以下链接:

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

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

    1。在 Xcode 中选择您的项目文件。

    2。在“目标”下选择适当的目标

    3。选择“常规”旁边的“功能”

    4。您可以看到如下所示的“关联域”选项。

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

    正如上面的截图中提到的,它会在启用“Associated Domains”时做两件事

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

    如果从 Xcode 和开发者帐户同步您的设置有任何问题,请选中以下复选框。

    还要确保您的 、In House 和 App Distributions 配置文件已正确更新和同步。

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

    场景 2:您的应用不需要“Associated-Domain”功能。 在这种情况下,请按照@Ciprian Rarau 给出的答案。解释得很好。

    【讨论】:

      【解决方案5】:

      正如ERROR ITMS-90164/90046: Invalid Code Signing Entitlements 中的其他说明,我能够通过执行清理构建来解决问题。 作为记录,我收到了错误代码 ITMS-90164

      【讨论】:

        【解决方案6】:
        • 得到:“可执行文件的签名无效” 消息
        • 使用 Google 搜索提供了一些有用的提示,但 ^ 消息提供了 不停歇
        • 转到:Xcode > 窗口 > 设备
        • 然后:在我选择的设备窗口的左下角 “显示设备控制台”按钮
        • 从日志按钮开始,我扫描了信息并 发现问题并在短时间内解决
        • 就我而言,它涉及 com.apple.developer.associated-domains 权利,我需要保留关联域
        • 以后只要有设备错误消息,我都会使用设备控制台,这样可以节省很多时间
        • 在短时间内解决了问题
        • 顺便说一句,谢谢大家的帮助

        【讨论】:

          猜你喜欢
          • 2017-10-28
          • 1970-01-01
          • 1970-01-01
          • 2015-06-07
          • 2021-08-16
          • 2015-03-22
          • 2020-08-06
          • 1970-01-01
          • 2020-03-06
          相关资源
          最近更新 更多