通用链接在真实设备上无法工作。

5
我目前正在实现应用通用链接,无论是使用命令行xcrun simctl openurl booted还是点击来自消息的链接,它们在我的模拟器上都能正常工作。
但我无法在真实设备上运行它们(测试了3个不同版本的iOS 14.X的3个不同iPhone)。
“应用程序配置>签名和功能>关联域”已正确设置为“applinks:<domain_name>”。
我已经尝试过:
- 卸载/重新安装应用程序 - 清理我的构建库存 - 重启我的设备 - 安装应用程序后等待5分钟 - 对路由https://<domain>/.well-known/apple-app-site-association 使用另一个HTTP协议 - 从许多应用程序中点击链接(消息、discord、笔记...) - 使用ngrok/localtunnel/apache服务器(生产环境中)暴露我的站点 - 在开发者设置中打开/关闭“关联域开发”
我已经在类似branch.io或appsflyer.com这样的AASA验证器网站上进行了验证,并且一切都很正常。一旦我将应用程序重新安装到我的iPhone上,就会请求aasa文件,并返回一个带有正确的Content-Type:application/json的200 OK http响应。
我已经没主意去解决这个问题了。即使在模拟器上运行良好,我也希望在将应用程序部署到Appstore之前使其正常工作。
谢谢你未来的帮助。

我重新启动了我的设备,问题解决了! - Ahmadreza
2个回答

1

很不幸,通用链接对每个人都不可靠,这似乎是一个问题,AASA文件在设备上未被下载。

已知错误

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

验证问题

通常情况下,苹果操作系统会在一段时间间隔后重新尝试获取AASA文件,但通过临时解决方案可以进行测试。在应用程序内部,检查AASA文件是否成功下载。请按照以下步骤操作:

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

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

备选方案

此外,您还可以在服务器端使用用户代理和其他方法实施回退深度链接调用。


非常感谢您的回答。 如果我在设备上安装AASA文件后立即收到HTTP请求,这是否意味着该文件已被下载?我考虑了您的备份计划,不幸的是,我的链接已经重定向到我的应用程序的Web版本。 - Valipss
不一定,也许这意味着设备试图访问文件!至于备份计划,您应该在重定向之前添加中间件。 - Mojtaba Hosseini

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接