Firebase动态链接问题:未安装应用时无法跳转至App Store
Firebase动态链接问题:未安装应用时无法跳转至App Store
嘿,我之前也碰到过类似的坑,咱们一步步来排查,应该能找到问题所在:
先确认AASA文件的有效性
- 首先检查AASA文件能不能正常访问:打开浏览器输入
https://app.okuru.app/.well-known/apple-app-site-association,看看能不能下载到正确的JSON文件,还要检查文件格式有没有语法错误(比如引号是不是全角、有没有少逗号之类的)。 - 核对Team ID和Bundle ID:你提到AASA里填了Team ID,一定要确保这个ID和你苹果开发者账号的Team ID完全一致,还有AASA里的
bundleId也要和App Store上你的应用Bundle ID严格匹配(大小写最好也对上,虽然苹果不区分,但避免不必要的问题)。
检查Firebase动态链接的配置
- 确认自定义域名关联:去Firebase控制台的「动态链接」→「域名」选项,看看app.okuru.app是不是已经添加并完成了验证?如果没验证的话,动态链接的跳转逻辑可能会出问题。
- 核对未安装跳转设置:不管是创建单个动态链接时的设置,还是全局的默认配置,都要确认「未安装应用时的行为」是跳转至App Store,并且填写的App Store ID是正确的,填错的话系统找不到对应的应用,自然跳不过去。
排查路径配置的影响
你现在的paths配置是这样的:
"paths": [ "NOT /__/auth/action/", "NOT /__/auth/handler/", "NOT /_/*", "/*" ]
这个顺序是对的(苹果会从上到下匹配规则),不过可以先简化测试:暂时把paths改成只保留"/*",看看能不能正常跳转,排除路径规则导致的拦截问题。如果简化后能跳转,再慢慢加回NOT规则排查哪条出了问题。
留意缓存的坑
苹果会缓存AASA文件,有时候你修改了文件,但设备还是用的旧缓存。可以试试这些方法:
- 用设备的隐私模式打开链接测试;
- 重置设备的Web缓存(iOS可以在「设置」→「Safari浏览器」→「清除历史记录与网站数据」);
- 用
curl -v https://app.okuru.app/.well-known/apple-app-site-association查看响应头的Cache-Control,如果缓存时间太长(比如超过24小时),可以调整服务器的缓存策略,把AASA文件的缓存时间设短一点(比如1小时),方便测试。
注意测试方式
- 别用模拟器测试!一定要用真实设备,模拟器处理深层链接的逻辑和真实设备有差异;
- 测试时确保设备上确实没装你的应用,而且最好用短信/邮件发送链接后点击打开,不要直接在浏览器地址栏输入,部分浏览器的处理方式会影响跳转。
最后确认应用状态
如果你的应用还没上架App Store,或者是TestFlight的测试应用,要注意:
- 未上架的应用,动态链接可能无法正常跳转至App Store,因为苹果需要应用在商店有对应条目;
- 如果是TestFlight应用,要在Firebase里配置跳转至TestFlight的链接,而不是普通的App Store链接。
备注:内容来源于stack exchange,提问作者Satvik Trivedi
相关产品推荐
相关产品推荐

