对于更高级的实现,您可能需要为其指定键 测试和实时环境(例如,如果您正在构建一个 自定义开关,根据自动选择正确的键 编译器方案)。
在Xcode中打开Info.plist文件,将branch_key条目更改为a 字典,并为您的键创建两个子条目:
我的问题是:如何根据编译器方案构建自定义开关以自动选择正确的密钥?我知道我可能会使用#if DEBUG来定义环境,但我不明白我在哪里告诉分支应该使用哪个密钥?或者分支会自动检测它吗?
非常感谢
答案 0 :(得分:8)
#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)