You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

iOS应用Branch.io集成异常:Gmail/邮件App无法通过通用链接唤起应用

解决iOS邮件客户端(Gmail/原生邮件)中Branch深度链接无法唤起App的问题

先梳理下你的现状:已经完成Branch.io + SendGrid的集成,关联域名也配置妥当,Safari和Branch后台生成的链接都能正常唤起App,但在iPhone的Gmail或原生邮件App里点击链接却跳转到App Store。这大概率是邮件客户端的特殊处理逻辑导致的,下面是针对性的排查和解决步骤:

一、排查邮件客户端对链接的重写行为

很多邮件客户端(尤其是Gmail)会对邮件中的链接进行重写包装,目的是跟踪点击,但这会破坏Branch深度链接的Universal Links触发逻辑。你可以做以下验证:

  • 打开邮件,长按链接选择「复制链接」,把复制到的链接和你后端生成的原始Branch链接对比。如果复制到的链接是Gmail的跳转链接(比如https://mail.google.com/mail/...开头),那说明链接被重写了。
  • 针对这种情况,你需要确保Branch的跟踪域名已经被邮件客户端加入「安全白名单」,或者使用Branch提供的邮件专用链接格式

二、优化Branch + SendGrid的邮件链接配置

虽然你已经完成了基础配置,但还有几个细节需要确认:

  1. 确保SendGrid中的Branch链接使用「一键跳转」格式
    在SendGrid模板中,不要直接使用原始的Branch深度链接,而是使用Branch提供的https://<你的跟踪域名>/link?url=<原始深度链接>格式,这个格式专门针对邮件客户端做了适配,能绕过链接重写的问题。
  2. 检查Branch后台的「邮件设置」
    登录Branch后台,进入「Configuration」→「Email」,确认:
    • 你的SendGrid账户已经正确关联,并且开启了「Email Link Tracking」
    • 「Tracking Domain」已经设置为你配置的关联域名,并且状态是「Verified」
  3. 验证Universal Links的关联域名配置
    虽然你已经添加了关联域名,但需要确认:
    • 关联域名的格式是applinks:<你的跟踪域名>,没有拼写错误
    • 你的apple-app-site-association文件已经正确部署在跟踪域名的根目录或.well-known目录下,并且邮件客户端能正常访问(可以用iPhone的Safari访问https://<你的跟踪域名>/.well-known/apple-app-site-association确认能下载到文件)

三、测试邮件链接的唤起逻辑

除了上述配置,你可以通过以下方式测试:

  • 使用Apple的Universal Links验证工具(在Xcode中,选择「Product」→「Validate App」)确认你的关联域名配置正确。
  • 发送测试邮件到你的iPhone,长按链接选择「在Safari中打开」,如果能唤起App,说明Universal Links本身没问题,问题确实在邮件客户端的链接处理上。
  • 尝试在邮件客户端中,先复制链接,然后在Safari中粘贴打开,看是否能唤起App,这也能验证链接本身的有效性。

四、备选方案:使用Branch的「自定义URL Scheme」作为 fallback

如果上述方法都无法解决,可以考虑添加fallback机制:

  • 在Branch后台配置「Fallback to App Store」的逻辑时,同时添加自定义URL Scheme的唤起选项。当Universal Links无法触发时,自动尝试用URL Scheme唤起App。
  • 注意:URL Scheme需要在Xcode的「Info.plist」中添加CFBundleURLSchemes配置,并且在Branch后台的「Configuration」→「Link Settings」中设置对应的Scheme。

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

火山引擎 最新活动