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

关于Branch.io SDK生成重复链接问题的技术咨询

解决Branch.io跨平台重复链接问题(同一canonical_identifier生成不同URL)

我之前帮开发者解决过类似的Branch.io链接一致性问题,咱们一步步来排查解决这个问题——要让iOS和Android用同一个canonical_identifier生成完全相同的深度链接,核心是确保配置和调用逻辑的一致性,具体操作如下:

1. 严格统一canonical_identifier的传递

这是最基础也最容易出错的点:必须在两个平台传递完全一致的canonical_identifier值,包括大小写、特殊字符、空格都要完全匹配。比如不能iOS端传product_123,Android端传Product_123或者product 123,哪怕细微差异都会让Branch认为是不同的内容。

给你两个平台的标准调用示例,参考对齐:

iOS(Swift)

// 确保canonical_identifier完全统一
let buo = BranchUniversalObject(canonicalIdentifier: "product_123")
buo.title = "Premium Wireless Headphones"
buo.contentDescription = "Noise-cancelling over-ear headphones"

let linkProps = BranchLinkProperties()
// 可选:如果需要强制复用已有链接,添加这个参数
linkProps.forceCanonicalUrl = true

buo.getShortLink(with: linkProps) { shortUrl, error in
    if let error = error {
        print("生成链接失败:\(error.localizedDescription)")
    } else if let url = shortUrl {
        print("生成的链接:\(url)")
    }
}

Android(Kotlin)

// 完全匹配iOS端的canonical_identifier
val buo = BranchUniversalObject()
    .setCanonicalIdentifier("product_123")
    .setTitle("Premium Wireless Headphones")
    .setContentDescription("Noise-cancelling over-ear headphones")

val linkProps = LinkProperties()
// 可选:强制复用已有链接
linkProps.setForceCanonicalUrl(true)

buo.generateShortUrl(context, linkProps) { shortUrl, error ->
    if (error != null) {
        Log.e("Branch", "生成链接失败:${error.message}")
    } else {
        Log.d("Branch", "生成的链接:$shortUrl")
    }
}

2. 检查Branch后台的平台配置一致性

登录Branch控制台,进入Link Settings页面,确认以下两点:

  • 确保iOS和Android平台使用相同的Link Domain:不管是自定义域名(比如links.yourdomain.com)还是Branch默认域名,两个平台必须一致,否则生成的链接域名不同,自然不是同一个URL。
  • 检查Default Link Behavior:不要针对iOS和Android设置差异化的路由规则或跳转逻辑,避免同一canonical_identifier被分支处理成不同链接。

3. 验证初始化时的项目密钥一致性

在iOS和Android的初始化代码中,必须使用同一个Branch项目的Live Key:

  • iOS:Info.plist里的branch_key值
  • Android:AndroidManifest.xml里的io.branch.sdk.BRANCH_KEY值

如果两个平台用了不同的项目密钥,相当于在两个独立的Branch项目里生成链接,自然无法复用同一canonical_identifier的链接。

4. 强制复用已有链接(关键修复步骤)

如果已经确保以上配置都正确,但还是生成不同链接,那就在生成链接时添加forceCanonicalUrl参数(iOS)或setForceCanonicalUrl(true)(Android),这个参数会强制Branch查找并返回已存在的、对应该canonical_identifier的链接,而不是生成新的。

5. 清理后台重复链接(如果有历史遗留问题)

如果之前用同一canonical_identifier生成过不同链接,Branch后台可能留存了重复条目:

  • 进入Branch控制台的Link Analytics页面,搜索你的canonical_identifier,找到所有相关链接。
  • 手动删除重复的旧链接,然后重新调用生成接口,就能得到唯一的链接了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:51:27