Universal Link无法跳转至指定应用,点击后打开浏览器报错求助
Universal Link 跳转异常排查及解决思路
针对你遇到的「诊断显示URL为Universal Link,但点击仍跳转浏览器并报Cannot GET <path>」的问题,可按以下方向逐一排查:
1. 修复apple-app-site-association文件的语法错误
你的JSON文件中appIDs数组最后一个元素末尾多了一个尾逗号("ABCDEFGHIJ.com.me.myapp.beta",),JSON规范不允许此类语法,会导致部分系统解析失败。修正后的文件内容如下:
{ "applinks": { "details": [ { "appIDs": [ "ABCDEFGHIJ.com.me.myapp.debug", "ABCDEFGHIJ.com.me.myapp.alpha", "ABCDEFGHIJ.com.me.myapp.beta" ], "components": [ { "/": "/poc/*", "comment": "Matches any URL with a path that starts with /poc/." } ] } ] } }
2. 确保测试链接使用HTTPS协议
Universal Link仅支持HTTPS链接,若你在笔记中测试的URL未带https://前缀,系统会直接跳转浏览器。必须使用完整的https://subdomain.mydomain.com/poc/这类链接进行测试。
3. 验证服务器关联文件的可访问性
- 直接访问
https://subdomain.mydomain.com/.well-known/apple-app-site-association,确认返回状态码为200,且内容是完整的原始JSON(无HTML包装、无重定向跳转)。 - 检查服务器是否为该文件设置了正确的
Content-Type头,建议设置为application/json(苹果允许无此头,但错误的头可能导致解析异常)。
4. 调整Universal Link路径匹配规则
当前配置的"/poc/*"仅匹配以/poc/开头的路径(如/poc/xxx),但不匹配/poc(无末尾斜杠)或/poc/index.html这类路径。可扩展components规则覆盖所有测试场景:
"components": [ { "/": "/poc/*" }, { "/": "/poc" }, { "/": "/poc/index.html" } ]
5. 清除系统Universal Link缓存
苹果会缓存关联文件,即使诊断显示正常,旧缓存仍可能导致跳转异常:
- 卸载当前测试APP,重新通过Xcode安装
- 前往「设置 -> Safari浏览器 -> 清除历史记录与网站数据」
- 重启设备
6. 确认APP签名与权限配置
- 检查Xcode中
Associated DomainsCapability是否已正确勾选,且条目applinks:subdomain.mydomain.com?mode=developer无拼写错误 - 确认使用的Provisioning Profile包含
Associated Domains权限,且签名使用的Bundle ID与apple-app-site-association中的appIDs完全匹配
内容的提问来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

