Apple Universal Links

概述

Branch 使得使用 Universal Links 变得更加简单,同时提供全面归因,支持个别案例情况,并在用户没有安装应用时允许您进行深度链接。

设置 Universal Links

  1. 首先,您需要在 Branch 操作后台 (Dashboard)上启用 Universal Link。要执行此操作,您需要:
    a. 前往 Branch 操作后台 (Dashboard)的Configuration页面。
    b. 选中从 iOS 重定向到Enable Universal Links的复选框。
    c. 输入应用的 Bundle ID。
    d. 键入您的 Apple App prefix(可通过在 Apple 开发者门户中的此页面上点击您的应用来找到)。
    e. 向下滚动并点击保存按钮。

  2. 在这里,您可以通过以下方式在 Xcode 中启用 Associated Domain:
    a. 转到项目文件的Capabilities标签。
    b. 向下滚动并启用Associated Domains
    c. 如果在执行此步骤后看到错误,请检查:

    1. 为您的 Xcode 项目选择了合适的团队。
    2. Xcode 项目的捆绑包标识符与用于向 Apple 注册应用标识符的捆绑包标识符匹配。
  3. 通过以下方式添加 Branch Link domain:a. 在 Configuration 页面上,找到链接域(Link Domain)部分。b.复制您的域名。c.c. 在 Domains 部分中,点击+图标并添加以下条目:(确保 xxxx与已为自己分配或选择的子域前缀匹配)

    • applinks:xxxx.app.link
    • applinks:xxxx-alternate.app.link
    • applinks:xxxx.test-app.link
    • applinks:xxxx-alternate.test-app.link

🚧

支持旧版链接

如果默认域名框显示旧版 bnc.lt 域,则应改用以下条目: applinks:bnc.lt

📘

使用自定义域还是子域?

如果您为 Branch link 使用自定义子域,则应该为applinks:[mycustomdomainorsubdomain]XXXX.app.linkXXXX-alternate.app.link添加条目。如果您不确定 Branch 分配的 app.link 子域,请与我们的支持团队联系,我们可以向您提供相关信息。

支持 Universal Links 的应用/浏览器

Universal Links 不可用。我们在这里汇总了一些热门应用的 Universal Links 支持状态。

始终有效的应用

如果您在以下应用之一中打开 Universal Link,应该可以一直正常工作:

  • Messages
  • Mail
  • WhatsApp
  • Gmail
  • Inbox

Apple 限制的应用

Apple 在某些情况下限制了 Universal Links:

  • 如果将链接粘贴到浏览器 URL 字段中,则 Universal Link 将不起作用。
  • 如果用户驱动的 <a href="..."> 元素点击同一域,则通用链接将不起作用。例如,如果google.com上有一个通用链接指向google.com上的另一个通用链接,它将不会打开该应用。
  • 除非它是用户操作的一部分,否则无法通过Javascript(在 window.onload<a> 元素上的 .click() 调用)触发 Universal Links。

条件性运行的应用/浏览器:

  • Safari
  • Chrome

有时可以运行的应用

具有内置 webview 的应用(Google,Twitter,Facebook,Facebook Messenger,微信等)仅在 webview 已打开时才能与 Universal Link 一起使用。换句话说,Universal Link 在 Feed 或主应用视图中均无法在应用内运行。
要解决此限制,您的链接必须启用Deepviews或类似功能,并且在其后带有 CTA 链接或按钮。这样,点击 App Feed 中的链接将打开一个包含 Deepview 页面的 webview,然后用户可以点击链接/按钮以启动您的应用。 Apple 的所有限制(在上一部分中)仍然适用于 Deepview 页面。

条件性运行的应用/浏览器:

  • Google
  • Facebook
  • Facebook Messenger
  • WeChat
  • Twitter
  • LinkedIn
  • Any app using SFSafariViewController

具有特殊情况的应用

如果配置为在 Safari 中打开链接,则 Slack 可以工作。否则,它会像上述部分一样有条件地工作。

无法使用的应用

  • Instagram
  • Pinterest
  • Telegram

导致 Universal Links 失败的常见问题

您可以使用 Universal Links Validator 来检查 Xcode 项目是否正确配置。

您是否通过手动进入 Safari 进行测试? 进入 Safari 时,Universal Links 无法正常工作。使用 Notes 或 iMessage 进行测试。
您是否将 Branch Links 与另一个链接一起包装并重定向? 在大多数情况下,通过点击追踪链接将 Universal Links "包裹"时,Universal Links 不会打开该应用。Universal Links(包括 Branch Link)必须是独立的。如果您希望 Universal Links 在所有情况下都能正常工作,请不要使用其他重定向到 Branch Link 的链接。
您的 Team ID & Bundle ID 与您操作后台 (Dashboard)上的 ID 匹配吗? 您可以在[Configuration](dashboard.branch.io/configuration/general)页面的操作后台 (Dashboard)中,“启用 Universal Link” 旁边的 iOS 部分中找到它们。它们应与您的 Team ID 和 Bundle ID 相匹配。Team ID 可以在 https://developer.apple.com/membercenter/index.action#accountSummary 找到。您的 Bundle ID 可在 Xcode 中找到,它在正确的构建目标的**General**标签。如果您的 Apple App Prefix 与 Team ID不同,您应使用 App Prefix。您的 App Prefix 可以从 Apple 开发者门户上的 App ID 中找到。
您是否删除了该应用并重新安装? 除非您删除并重新安装该应用,否则 iOS 不会重新抓取 apple-app-site-association 文件。 (唯一的例外是 App Store 更新。iOS 会在每次更新时重新抓取。这意味着,当用户使用授权的应用链接更新到您的应用版本时,Universal Links 将开始工作。)
Universal Links 可以禁用 如果您通过 Universal Link 成功进入了您的应用,则在状态栏的右上角看到 "app.link " (或您的域)和一个 forward 键。如果您点击该键,Apple 将不再激活 Universal Link。要重新启用 Universal Link,请长按“消息”(由于10中的 iMessage 改进而仅限 iOS 9)或 Notes(iOS 10/9)中的链接,然后选择 'Open in APP'。
使用自定义域? 确保它已正确配置。您可以使用我们的[Universal Link Validator](https://branch.io/resources/universal-links)找到配置问题。 如果您的域未正确设置 SSL,则会在操作系统级别的日志中显示以下错误消息:
Sep 21 14:27:01 Derricks-iPhone swcd[2044] : 2015-09-21 02:27:01.878907 PM [SWC] ### Rejecting URL 'https://examplecustomdomain.com/apple-app-site-association' for auth method 'NSURLAuthenticationMethodServerTrust': -6754/0xFFFFE59E kAuthenticationErr

前往 Window > Devices >选择您的设备,然后点击主视图左下角的 "up" 箭头,可以找到连接到 Xcode 的设备的日志。

如果您使用的是自定义子域,您的 CNAME 应该指向 Branch 操作后台 (Dashboard)配置(Configuration)项下的custom.bnc.lt

2个月前更新


Apple Universal Links


建议的编辑仅限于 API 参考页

您只能建议对 Markdown 正文内容进行修改,而不能建议对 API 说明进行修改。