获取服务 'applinks'、应用程序 ID“<<NULL>>”的信息

Get info for service 'applinks', app ID '<<NULL>>'

尝试在我的 iOS 应用程序 运行 iOS 中实现通用 links 10,每当在我的网页中单击 link 时,我都会得到设备日志中的以下消息:

Feb 24 15:07:11 iPhone swcd(CoreUtils)[10142] <Notice>: Get info for service 'applinks', app ID '<<NULL>>', domain 'www.redacted...'

我的应用已设置为此域所需的权利和功能。我的关联域权利密钥包含这些域:

applinks:redacted.com
applinks:www.redacted.com

服务器通过 https 在根文件夹中托管 apple-app-site-association 文件。我确保文件的内容类型设置为 application/json 并且没有指向它的重定向。该文件的内容是:

{
    "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "teamid.redacted-app-id",
        "paths": ["*"]
      }
    ]
  }
}

我测试这个的方法是进入我的网站并点击我发现的第一个 link,每次我点击这个 link 我都会收到上面粘贴的消息和 link 在 safari 中打开。

您对问题的描述没有提供任何确凿证据表明问题可能是什么。正如我在之前的评论中指出的那样,要真正解决通用 Linking 问题,最好了解已配置的所有内容,并制定适当的测试计划以重现配置和测试。可能导致问题的地方太多了。

一般来说,Universal Linking 的问题分为设置问题或测试问题:

设置问题

  • AASA 文件是否正确命名并正确签名,是否从正确的位置提供服务,所有权利都正确吗?

  • 设备和配置证书都没有错误吗?

  • 您是否在测试应用已正确配置支持的link?

测试问题

  • 您是否使用物理设备进行测试? (有人说 Universal Links 现在可以在模拟器中与 iOS 10 一致地工作,但我仍然会使用物理设备)

  • 你在测试什么link?您表明您是 "going into my site and tapping the first link I find." 您是在 "redacted.com" 域中找到的这些 link 吗?我不会使用 "www.redacted.com",因为 "www" 受到许多系统的特殊对待,可能无法按预期工作。

  • 当应用首次 installed/launched 时,AASA 文件是否可能由于测试环境的网络连接问题而无法更新?例如,我发现如果 Charles Proxy 正在捕获流量,AASA 将无法下载。如果 AASA 文件没有进入设备,Universal Linking 将不起作用。

  • 测试的时候,好像不是先把link粘贴到记事本,然后长按。我强烈建议您总是首先以这种方式进行测试,以排除与您的网站、您从中点击 link 的应用程序或您部署 link(例如,如果将通用 Links 粘贴到 Safari 地址栏中,它们将不会按预期运行)。当您通过长按 Notes 中的 link 进行测试时,您应该会看到 "Open in App" 菜单选项。如果您确实看到了这一点,但点击 link 并没有打开该应用程序,则表明通用 Linking 已在设备上被禁用。

  • 当您点击这些 link 时,您期望看到的行为是什么?您看到的实际行为是什么?我经常遇到认为 Universal Linking 已损坏的人,因为他们正在测试 Universal Linking 不支持的场景。您确定支持您正在测试的行为吗?

  • 您使用的设备和 iOS 版本是否支持通用 Links?如前所述,应在物理设备上进行测试,并在 9.0 之后的 iOS 版本(其中引入了 Universal Linking)上进行测试。

当 Universal Linking 不起作用时,有很多东西需要检查。我推荐 运行 通过 Alex Austen 关于这个主题的超级博客 post,因为这样做可以帮助您发现问题(此处:https://blog.branch.io/how-to-setup-universal-links-to-deep-link-on-apple-ios-9/)。

Branch 还有一些 tools/resources 用于识别通用 Linking 问题。它们专门用于 Branch links,但您可能仍然会发现它们很有用:

如果上述解决方法中的 none 对您有效,请检查您是否在相关域中添加了 activitycontinuation。

下图显示了您必须添加的确切位置。 (当然你还没有这样做)。

看看这里的日志是怎样的():

  • Xcode –> Windows –> 设备和模拟器
  • 点击左侧的设备 窗格单击“打开控制台”
  • 从那里,过滤 "swcd"(SharedWebCredential 守护进程)。保持此控制台打开。

如果它在关闭时保存历史记录,您可能需要在安装应用程序之前打开控制台。


我的问题:

我的 apple-app-site-association 文件托管在 subdomain.mydomain.com 但后来在 Xcode 我有 关联域 设置为 applinks:*.mydomain.com。在上面提到的控制台中,我看到在这种情况下,应用程序试图从 mydomain.com 获取其 apple-app-site-association 文件.所以我将 关联域 更改为 applinks:subdomain.mydomain.com