You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已正确配置但iOS Universal Links仍在Safari打开而非应用

iOS Universal Links无法唤起App的排查要点

针对你遇到的问题——所有配置看似正确但仍跳转Safari,补充几个容易被忽略的检查项:

  • 强制重置Universal Links缓存
    iOS的AASA缓存机制经常“抽风”,哪怕CDN显示配置正确,本地缓存可能没更新。操作步骤:

    1. 彻底卸载App,重启设备
    2. 重新安装后先手动打开一次App(这步是关键,系统需要App启动后才会完成Universal Links的注册)
    3. 再通过备忘录/短信里的链接,或者xcrun simctl openurl booted https://my-example.com/explore/post/123命令测试
  • 核对AASA文件的细节
    虽然你已经验证了CDN可访问,但再确认:

    • 文件绝对不能带.json后缀,必须是无后缀的apple-app-site-association
    • paths规则是否匹配测试链接?比如你用的/explore/post/123,AASA里的paths要写成["/explore/post/*"](通配符匹配),如果是精确路径["/explore/post/123"]只会匹配这一个链接
    • appIDs格式必须是TeamID.BundleID,比如ABCDE12345.com.yourcompany.yourapp,检查Team ID和Bundle ID有没有大小写错误
  • Debug Build的特殊注意事项
    用Debug签名安装的App,注意这两点:

    • Xcode的Signing & Capabilities里,Associated Domains的applinks:my-example.com不要有多余空格,域名前后都不能有空格
    • 设备上关闭设置 > Safari浏览器 > 隐私与安全性 > 阻止跨网站跟踪,开启这个选项会干扰Universal Links的触发逻辑
  • 正确的测试场景

    • 不要直接在Safari地址栏输入链接(这种方式默认走Safari),必须通过第三方App的文本链接点击测试,或者用simctl命令
    • 模拟器测试时,先重置模拟器内容(Device > Erase All Content and Settings)再重新安装App,模拟器的缓存比真机更顽固
  • 服务器响应头检查
    用curl命令查看AASA文件的响应头,确保Content-Type是application/json:

    curl -I https://my-example.com/.well-known/apple-app-site-association
    

    如果返回的是text/plain,服务器配置有问题,需要调整MIME类型设置

  • iOS 18的适配细节
    iOS 18对Universal Links的校验更严格:

    • 确保Info.plist里没有设置LSApplicationQueriesSchemes限制目标域名(虽然这个主要针对自定义URL Scheme,但可能间接影响Universal Links的识别)
    • 检查App的NSAppTransportSecurity配置,虽然HTTPS域名默认没问题,但如果有NSAllowsArbitraryLoads,确保没有覆盖掉对目标域名的信任

内容的提问来源于stack exchange,提问作者VladoS24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 08:55:13