【问题标题】:Universal link do not work on real devices通用链接在真实设备上不起作用
【发布时间】:2021-05-17 12:12:34
【问题描述】:

我目前正致力于在我的应用程序中实现通用链接,无论是使用命令行 xcrun simctl openurl booted 还是通过点击消息中的链接,它们都可以在我的模拟器上完美运行

但我无法在真实设备上运行它们(使用 3 个不同 iOS 14.X 版本测试的 3 个不同 iPhone)

App 配置 > Signing and Capabilities > Associated Domains 正确设置为applinks:<domain_name>

我已经尝试过:

  • 卸载/重新安装应用程序
  • 清理我的构建存储库
  • 重启我的设备
  • 安装应用后等待 5 分钟
  • 为路由https://<domain>/.well-known/apple-app-site-association使用另一个HTTP协议
  • 点击来自许多应用程序的链接(消息、不和谐、笔记...)
  • 使用 ngrok / localtunnel / apache 服务器(在产品中)公开我的网站
  • 在开发者设置中打开/关闭“关联域开发”

我已经在 branch.io 或 appsflyer.com 等 AASA 验证器网站上进行了验证,一切正常,一旦我将应用程序重新安装到我的 iPhone 上,就会请求 aasa 文件,它会返回一个带有正确的 200 OK http 响应Content-Type : application/json

我没有办法解决这个问题。我真的很想在将应用程序部署到 Appstore 之前让它工作,即使它在模拟器上运行良好。

感谢您以后的帮助

【问题讨论】:

    标签: ios swift iphone redirect ios-universal-links


    【解决方案1】:

    不幸的是,通用链接并非对每个人都可靠,这似乎是 AASA 文件没有下载到设备中的问题。

    已知错误

    对于 Apple 有 a known universal bug,其中 iOS 版本 11.x+ 的设备无法获取 AASA 文件,从而导致通用链接失败。

    验证问题

    通常,Apple 操作系统会在某个时间间隔重新尝试获取 AASA 文件,但解决方法可能有助于测试条件。 在应用程序中,检查 AASA 文件是否下载成功。为此:

    • 将链接复制到您的笔记应用中。

    • 长按链接直到出现下拉菜单。如果下拉菜单显示“打开链接”,则通用链接不适用于该设备。如果链接显示“在应用程序名称中打开”,则配置工作正常。

    后备计划

    您还可以在用户代理和其他东西的帮助下在您的 sercerside 上实现后备深度链接调用

    【讨论】:

    • 非常感谢您的回答。如果我在设备上安装 AASA 文件后立即收到 HTTP 请求,这是否意味着该文件已下载?我已经考虑过你的备份计划,不幸的是我的链接已经重定向到我的应用程序的网络版本。
    • 不一定,可能是设备试图访问文件!而关于备份计划,你应该在重定向之前添加中间件。
    【解决方案2】:

    在您的 apple-app-site-association 文件中检查您是否使用“appID”:“.bundleid”。如果是这样,请尝试将其替换为“appID”:“.bundleid”,反之亦然。

    【讨论】:

      猜你喜欢
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 2016-04-04
      • 2020-07-03
      • 2012-07-06
      相关资源
      最近更新 更多