我有一个 xcconfig 文件,其中包含我的应用程序应该访问的服务器的配置。在调试模式下,这将是与发布版本不同的服务器。
我遇到的问题是http://www.stackoverflow.com形式的 URL在双斜杠之后被视为注释。所以我在代码中得到的字符串是'http:'
我已经读到我可以在 Info.plist 上放置一个 -traditional 构建标志,我想知道是否有人遇到过类似的问题并解决了它?
谢谢。
我有一个 xcconfig 文件,其中包含我的应用程序应该访问的服务器的配置。在调试模式下,这将是与发布版本不同的服务器。
我遇到的问题是http://www.stackoverflow.com形式的 URL在双斜杠之后被视为注释。所以我在代码中得到的字符串是'http:'
我已经读到我可以在 Info.plist 上放置一个 -traditional 构建标志,我想知道是否有人遇到过类似的问题并解决了它?
谢谢。
这是一个简单的解决方法:
WEBSITE_URL = https:/$()/www.example.com
我也不知道如何在 xcconfig 文件中使用双斜杠。但我找到了一个解决方法
来自 Xcode-users 邮件列表:在xcconfigfile中,保存不带 http 方案的 URL:
MYURL = stackoverflow.com
在Info.plist 中,将属性值设置为
http://${MYURL}
只需声明
SIMPLE_SLASH=/
然后你的网址变成
http:$(SIMPLE_SLASH)/www.stackoverflow.com
SLASH=/
API_URL=http:$(SLASH)/endpoint.com
另一种提高可读性的方法可能是:
PROTOCOL = http:/
API_URL = $(PROTOCOL)/www.stackoverflow.com
这种方式协议可以在其他地方使用
您不应为此设置使用 xcconfig 文件。
xcconfig 文件不是“普通”头文件或模块文件,它是预处理器的输入,最终是编译器的输入。没有指定 xcconfig 文件解析器如何处理字符编码、是否识别转义序列、是否扩展宏以及如何定义字符文字等等。
在这种情况下,最好有一个“config.h”头文件并使用基于预处理器定义的条件:
#if defined (DEBUG)
NSURL* url = ...
#else
NSURL* url = ...
#endif
此处,DEBUG
默认为 Debug 配置定义。您可以在“预处理器宏”下的构建设置中#define 任何其他定义。
您可以使用反斜杠转义:
URL = "http:\/\/mydomain.com"
编辑
不要忘记在重新构建之前清理您的项目。