AASA文件配置异常:仅允许特定路径跳转iOS App无效
问题描述
我们的Web应用URL结构为/city/posttype/slug,计划实现App Links跳转,但仅希望posttypeA、posttypeB、posttypeC对应的路径(如/new-york/posttypeA/slug等)跳转至iOS App,其余路径(如/new-york/posttypeD/slug、/new-york、/等)不跳转。
我们配置了如下AASA文件:
{ "applinks": { "details": [ { "appID": "OUR_APP_ID", "paths": [ { "/": "/*/posttypeA/*", "comment": "matches all posttypeA" }, { "/": "/*/posttypeB/*", "comment": "matches all posttypeB" }, { "/": "/*/posttypeC/*", "comment": "matches all posttypeC" }, ] } ] } }
但iOS App仍会处理网站所有链接,已重装App但问题未解决,请问该如何处理?
解决方案
1. 修正AASA文件的核心错误
你当前的AASA配置存在两个关键问题:
- 使用了旧版的对象格式路径规则,iOS 9+已不再推荐,且容易导致解析异常
- 未添加排除规则,默认情况下iOS会匹配所有未明确排除的链接
正确的AASA配置如下:
{ "applinks": { "details": [ { "appID": "OUR_APP_ID", "paths": [ "/*/posttypeA/*", "/*/posttypeB/*", "/*/posttypeC/*", "NOT /*", "NOT /" ] } ] } }
注意事项:
paths数组直接存放字符串格式的规则,无需嵌套对象- 规则匹配顺序为从上到下,先匹配允许跳转的路径,最后用
NOT规则排除所有其他路径 - 删除配置中多余的末尾逗号(原配置里
paths最后一个元素的逗号会导致JSON解析失败)
2. 验证AASA文件的部署有效性
- 确保文件部署在域名的
.well-known目录下,访问https://你的域名/.well-known/apple-app-site-association能直接返回纯净的JSON内容,Content-Type需设置为application/json,不能有跳转或额外的HTML内容 - 使用苹果官方的App Links验证工具检查文件格式、域名关联是否正确
3. 强制刷新iOS的AASA缓存
重装App不一定能彻底清除缓存,可尝试以下方法:
- 打开Safari访问你的域名根路径(
/),长按地址栏链接选择「在App中打开」,之后关闭App重新测试 - 进入iOS设置 → Safari浏览器 → 清除历史记录与网站数据
- 开启设备飞行模式,等待10秒后关闭,触发系统重新拉取AASA文件
4. 检查Xcode项目配置
- 确认
Signing & Capabilities中的Associated Domains已添加applinks:你的域名,域名拼写完全一致 - 核对
appID格式正确,应为「Team ID + Bundle ID」的组合(例如ABCDE12345.com.yourcompany.yourapp)
内容的提问来源于stack exchange,提问作者Adam Ivancza
相关产品推荐
相关产品推荐

