Branch.io: 如何在 iOS 中切换实时和测试环境
Branch.io: how to switch between live and test environment in iOS
正如 Branch 在其文档中所说:
For more advanced implementations, you may want to specify keys for
both Test and Live environments (for example, if you are building a
custom switch to automatically select the correct key depending on
compiler schemes).
Open your Info.plist file in Xcode, change the branch_key entry to a
Dictionary, and create two subentries for your keys:
我的问题是:如何构建自定义开关以根据编译器方案自动select正确的密钥?我知道我可能会使用 #if DEBUG 来定义环境,但我不明白我应该在哪里告诉分支它应该使用哪个键?或者分支会自动检测它?
非常感谢
来自 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
您可以将 NSString 传递给 getInstance。
我是这样使用它的:
if (Debug) {
[Branch getInstance:@"key_test_lalala"];
}
else {
[Branch getInstance:@"key_live_lalala"];
}
在这种情况下,您也不需要在 plist 中包含 branch_key。
然而,作为旁注,最近我们遇到了分支链接不再使用测试密钥的问题,支持人员的答复是我们不应再使用测试密钥。
除了 Alex Bauer 的回复外,我还为 return 正确的 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)
截至 2018 年 5 月:
Branch.getTestInstance() 已弃用。
请使用以下扩展名继续:
extension Branch {
class var instance:Branch {
get {
#if DEBUG
Branch.setUseTestBranchKey(true)
#endif
return Branch.getInstance()
}
}
}
正如 Branch 在其文档中所说:
For more advanced implementations, you may want to specify keys for both Test and Live environments (for example, if you are building a custom switch to automatically select the correct key depending on compiler schemes).
Open your Info.plist file in Xcode, change the branch_key entry to a Dictionary, and create two subentries for your keys:
我的问题是:如何构建自定义开关以根据编译器方案自动select正确的密钥?我知道我可能会使用 #if DEBUG 来定义环境,但我不明白我应该在哪里告诉分支它应该使用哪个键?或者分支会自动检测它?
非常感谢
来自 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
您可以将 NSString 传递给 getInstance。 我是这样使用它的:
if (Debug) {
[Branch getInstance:@"key_test_lalala"];
}
else {
[Branch getInstance:@"key_live_lalala"];
}
在这种情况下,您也不需要在 plist 中包含 branch_key。
然而,作为旁注,最近我们遇到了分支链接不再使用测试密钥的问题,支持人员的答复是我们不应再使用测试密钥。
除了 Alex Bauer 的回复外,我还为 return 正确的 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)
截至 2018 年 5 月:
Branch.getTestInstance() 已弃用。 请使用以下扩展名继续:
extension Branch {
class var instance:Branch {
get {
#if DEBUG
Branch.setUseTestBranchKey(true)
#endif
return Branch.getInstance()
}
}
}