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

iOS端Firebase Dynamic Link仅在Chrome中正常工作问题咨询

解决Safari下Firebase动态链接无法唤起已安装App的问题

这种情况我碰到过好几次,大概率是**Universal Links(通用链接)**的配置出了问题——毕竟Safari对通用链接的校验比Chrome严格得多,Chrome可能还能通过自定义URL scheme兜底,但Safari几乎只认通用链接。下面一步步排查:

1. 检查Universal Links的核心配置(最关键)

a. 确认Firebase的AASA文件配置

Firebase动态链接会自动生成Apple App Site Association(AASA)文件,但你得确保它的内容正确:

  • 访问 https://你的动态链接域名/.well-known/apple-app-site-association(比如https://yourapp.page.link/.well-known/apple-app-site-association),查看返回的JSON里:
    • appIDs数组里的内容必须是你的TeamID.你的BundleID,大小写完全匹配,不能多空格或拼写错误;
    • paths里要包含你的动态链接路径,比如["/*"]表示匹配该域名下所有链接。

b. 检查Xcode的Associated Domains配置

打开Xcode项目,进入Signing & Capabilities标签:

  • 确保添加了Associated Domains能力;
  • 里面的条目必须是applinks:你的动态链接域名,比如applinks:yourapp.page.link,注意不要加https://或者结尾的斜杠。

2. 清除Safari缓存(常被忽略的坑)

Safari会缓存AASA文件和链接跳转规则,哪怕你后来修复了配置,旧缓存可能还在生效:

  • 打开iOS设置 → Safari浏览器 → 清除历史记录与网站数据;
  • 或者直接用Safari的私密浏览模式测试,私密模式不会读取缓存的AASA文件,能快速验证新配置是否生效。

3. 检查Firebase动态链接的预览页设置

有时候预览页的跳转逻辑在Safari下没正确触发通用链接:

  • 登录Firebase控制台,打开你的动态链接项目,检查链接的“App preview page”设置:
    • 如果用的是自定义预览页,确保按钮的跳转链接是你的通用链接(而不是自定义URL scheme,比如yourapp://xxx);
    • 如果用的是Firebase默认预览页,确认“Skip the app preview page”没有被错误开启?不过你说能看到预览页,这条可能不是主因,但可以排查下。

4. 验证App的Universal Links处理代码

虽然你说Chrome能唤起App,但还是确认下App里的处理逻辑是否正确:

  • 在AppDelegate(iOS 12及以下)里实现application(_:continue:restorationHandler:)方法;
  • 在SceneDelegate(iOS 13及以上)里实现scene(_:continue:)方法;
  • 这些方法里要正确处理传入的userActivity,确保能解析动态链接的内容(不过这一步主要影响唤起后的逻辑,不是唤起本身,但如果代码有问题,可能也会间接影响)。

5. 排查域名的HTTPS和重定向问题

AASA文件必须满足:

  • 只能通过HTTPS访问,不能是HTTP;
  • 访问时不能有301/302重定向,必须直接返回文件内容;
  • 如果用的是自定义域名(不是Firebase默认的page.link),要确保你自己托管的AASA文件符合这些要求。

按照上面的步骤排查,大概率能解决Safari下的问题——我之前就是因为AASA文件里的TeamID少写了一位,导致Safari死活不唤起App,Chrome却正常,改完就好了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:16:48