苹果商店提交失败,错误ITMS-90046,但关联的域名不属于权利

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

我已经到了Apples的“证书,标识符和configuration文件”页面,为每个Watchkit应用程序select了应用程序ID,分机和应用程序,未勾选“关联的域”,为每个应用程序重新生成configuration文件,下载并安装它们。

我完成了一个Ctrl-Shift-Command-K完成清理,重启和重build。 在sumbission上的appstore我得到下面的错误信息。

我在xcode中完成了项目search,找不到com.apple.developer.associated-domains项。 我search了build立目录,纳达。 我不相信这个密钥实际上存在于我的代码中,但iTunesConnect似乎认为它在那里并设置为“*”。

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

要解决这个问题:

  • login到Apple Deveveloper Center
  • 转到证书,标识符和configuration文件。
  • 转到标识符/应用程序ID。
  • select您的应用程序ID和编辑
  • 取消选中关联的域
  • 保存

您将不得不重新生成与App ID关联的所有configuration文件。 出于某种原因,“关联的域名”被检查了我的应用程序。 取消select它使AppStore提交工作。

在这里输入图像说明

在这里输入图像说明

我认为这是一个错误。

我通过在伴随应用程序和Watchkit扩展的Entitlements.plist中插入一个新的Array项目来pipe理变通方法:“com.developer.apple.associated-domains”和webcredentials:string的有效域。 虽然这将没有实际效果,因为我的configuration文件和function选项卡的应用程序或扩展function都没有启用关联的域,它停止任何itunesconnect代码扫描器跳过一个无效的值“*”为不存在的密钥。

Entitlements.plist的屏幕截图

如果要使用关联域,请确保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> 是必需的!

从应用程序提交失败的错误我了解可能是您的供应configuration文件仍然有“关联域”启用,并在您的应用程序“权利”文件中缺less。

所以显然会有两种情况。

场景1 :你想支持“关联域”吗? 这应该启用像“通用链接”function。

请参考以下链接:

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

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

1 。 在Xcode中select你的项目文件。

2 。 在“目标”下select适当的目标

3 。 select“常规”旁边的“function”

4 。 您可以看到下面给出的“关联域”选项。

在这里输入图像说明

5 。 启用“ 关联域 ”。 如果您启用了“ 关联域名 ”,Xcode将要求您login到开发者帐户,并且将与您的AppId和configuration文件同步。

正如在上面的截图中所提到的,它会做两件事情,而启用“ 关联域

  • 将关联域权利添加到您的权利文件。
  • 将关联的域function添加到您的应用程序ID。

如果从Xcode和开发者帐户同步设置有任何问题,请检查以下checkbox是否已启用。

在这里输入图像说明

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

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

场景2 :您的应用程序不需要“ 关联域 ”function。 在这种情况下,请按照@Ciprian Rarau给出的答复。 它很好地解释。

正如其他在错误ITMS-90164/90046中所述:无效的代码签名权利我能够通过执行清洁构build来解决问题。 为了logging,我得到错误代码ITMS-90164

在这里输入图像说明

  • 得到:“可执行文件被签署了无效的权利”消息
  • 谷歌search给出了一些有用的提示,但^信息并没有停止
  • 去了:Xcode>窗口>设备
  • 然后:在设备窗口的左下angular,我select了“显示设备控制台”button
  • 从日志的button开始,我扫描信息,发现问题并在短时间内修复
  • 在我的情况下,它涉及com.apple.developer.associated-domains权利,我需要保持关联域
  • 将来,如果有设备错误消息,我将使用设备控制台 ,这将节省多less时间
  • 在短时间内解决了这个问题
  • 顺便说一句,谢谢大家的帮助