通用链接在真实设备上不起作用

时间:2021-05-17 12:12:34

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

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

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

应用配置 > 签名和功能 > 关联域已正确设置为 applinks:<domain_name>

我已经尝试过:

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

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

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

感谢您未来的帮助

1 个答案:

答案 0 :(得分:0)

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

已知错误

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

验证问题

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

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

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

备份计划

您也可以在用户代理和其他东西的帮助下在您的服务端实现回退深度链接调用