Branch.io:如何在iOS中切换实时环境和测试环境

时间:2016-06-16 22:35:28

标签: ios deep-linking branch.io

分行在其文档中说:

  

对于更高级的实现,您可能需要为其指定键   测试和实时环境(例如,如果您正在构建一个   自定义开关,根据自动选择正确的键   编译器方案)。

     

在Xcode中打开Info.plist文件,将branch_key条目更改为a   字典,并为您的键创建两个子条目:

我的问题是:如何根据编译器方案构建自定义开关以自动选择正确的密钥?我知道我可能会使用#if DEBUG来定义环境,但我不明白我在哪里告诉分支应该使用哪个密钥?或者分支会自动检测它吗?

非常感谢![screenshot of branch config in plist file

4 个答案:

答案 0 :(得分:8)

来自Branch.io的Alex:#if DEBUG是最好的方法,你实际上只需要切换你的单身人士电话。而不是

let branch: Branch = Branch.getInstance(); // Swift
Branch *branch = [Branch getInstance]; // Objective C

您将

使用

let branch: Branch = Branch.getTestInstance(); // Swift
Branch *branch = [Branch getTestInstance]; // Objective C

答案 1 :(得分:3)

截至2018年5月:

不推荐使用Branch.getTestInstance()。 请使用以下扩展名继续:

extension Branch {
    class var instance:Branch {
        get {
            #if DEBUG
                Branch.setUseTestBranchKey(true)
            #endif
            return Branch.getInstance()
        }
    }
}

答案 2 :(得分:1)

您可以将NSString传递给getInstance。 我这样用它:

if (Debug) {
[Branch getInstance:@"key_test_lalala"];
}

else {
[Branch getInstance:@"key_live_lalala"];
}

在这种情况下,您也不需要在plist中使用branch_key。

然而,作为旁注,最近我们遇到了分支链接不再使用测试密钥的问题,支持的回复是我们不应再使用测试密钥了。

答案 3 :(得分:0)

再加上Alex Bauer的回复,我创建了一个扩展来返回Branch的正确实例:

import Branch

extension Branch {
    class var instance:Branch {
        get {
            #if DEBUG
                return Branch.getTestInstance()
            #else
                return Branch.getInstance()
            #endif
        }
    }
}

用法:

Branch.instance.initSession(launchOptions: launchOptions)