正如Branch在其文档中所说:
对于更高级的实现,您可能希望为测试和实时环境指定密钥(例如,如果要构建自定义开关以根据编译器方案自动选择正确的密钥).
在Xcode中打开Info.plist文件,将branch_key条目更改为Dictionary,并为您的键创建两个子条目:
我的问题是:如何根据编译器方案构建自定义开关以自动选择正确的密钥?我知道我可能会使用#if DEBUG来定义环境,但我不明白我在哪里告诉分支应该使用哪个密钥?或者分支机构会自动检测它?
非常感谢
所以我有一个这样的网址:
let remoetURL = "http://xxx-test.img-cn-hangzhou.aliyuncs.com/materials/talk_-XXXXX-XXXXXXX/STEM RULE.pdf"
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,在url的末尾,有一个空格,所以我需要摆脱它以获得一个有效的编码网址.
做了一些研究后,我意识到我可能会用
let escapedString = remoteURL.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLPathAllowedCharacterSet())
Run Code Online (Sandbox Code Playgroud)
但是这并没有返回预期的工作URL,因为它也在"http"之后编码":"
http%3A//xiaobandeng-staging.img-cn-hangzhou.aliyuncs.com/talk_materials/talk_-K4yjX4-238Ku74WVIJk/STEM%20RULE.pdf
Run Code Online (Sandbox Code Playgroud)
我也试过了URLHostAllowedCharacterSet,但没有运气.所以我想知道是不是因为我这里没有www,所以它无法正确识别哪个部分是主机.如果是这样,那么优雅的解决方案是什么?我知道我可以通过调用stringByReplacingOccurrencesOfString来替换%20的空格,但这似乎有点脆弱.
先感谢您.