如何在Apple-app-site-association中为不同组件配置对应路径
Apple-app-site-association 正确配置方案
首先纠正原有参考配置的两个常见问题:
- 同一个AppID出现在多个
details块时,iOS会优先匹配排列靠前的块规则,重复声明容易导致规则不生效 - iOS13及以上系统已使用
components字段替代老版本的paths字段,混用两个字段容易出现匹配异常
配置逻辑适配你的需求(大部分deeplink无需配置路径,仅单个特定组件需要指定路径)
规则匹配遵循「从上到下、优先匹配」原则,所以要把更具体的规则放在前面,宽泛的兜底规则放在后面:
- 特定路径的组件规则放在
components数组最前面 - 无需配置路径的deeplink统一用
{"/": "*"}作为兜底规则,放在同组components的最后 - 若部分AppID有单独的特殊规则,将对应的
details块放在通用规则块的前面
最终配置示例
"applinks": { "details": [ // 特殊规则块:仅对demo环境生效的额外规则,放最前优先匹配 { "appIDs": [ "xxx.demo" ], "components": [ { "/": "/redirect/*" }, { "/": "/uni/*" }, // 兜底规则,匹配demo环境下其他所有路径 { "/": "*" } ] }, // 通用规则块:所有环境生效的规则 { "appIDs": [ "xxx.prod", "xxx.demo", "xxx.development" ], "components": [ // 你需要单独配置的特定组件路径,放最前 { "/": "/你的特定组件路径/*" }, // 原有通用路径规则 { "/": "/help/*" }, { "/": "/example/*" }, // 兜底规则:匹配所有无需配置路径的deeplink { "/": "*" } ] } ] }
额外注意事项
- 如果需要禁止某个路径唤醒App,可以在
components最前面加排除规则:{"/": "/需要排除的路径/*", "exclude": true} - 配置文件需要部署在站点的
.well-known目录下,服务端要支持HTTPS直接访问该文件,不能有301/302跳转
内容的提问来源于stack exchange,提问作者Mocha
相关产品推荐
相关产品推荐

