64

我有一个 xcconfig 文件,其中包含我的应用程序应该访问的服务器的配置。在调试模式下,这将是与发布版本不同的服务器。

我遇到的问题是http://www.stackoverflow.com形式的 URL在双斜杠之后被视为注释。所以我在代码中得到的字符串是'http:'

我已经读到我可以在 Info.plist 上放置一个 -traditional 构建标志,我想知道是否有人遇到过类似的问题并解决了它?

谢谢。

4

7 回答 7

97

这是一个简单的解决方法:

WEBSITE_URL = https:/$()/www.example.com
于 2016-03-30T00:23:28.713 回答
42

我也不知道如何在 xcconfig 文件中使用双斜杠。但我找到了一个解决方法

来自 Xcode-users 邮件列表:在xcconfigfile中,保存不带 http 方案的 URL:

MYURL = stackoverflow.com

Info.plist 中,将属性值设置为

http://${MYURL}
于 2014-01-23T20:20:48.900 回答
21

只需声明

SIMPLE_SLASH=/

然后你的网址变成

http:$(SIMPLE_SLASH)/www.stackoverflow.com
于 2015-04-14T16:48:24.800 回答
9
SLASH=/

API_URL=http:$(SLASH)/endpoint.com
于 2017-11-14T16:08:45.590 回答
0

另一种提高可读性的方法可能是:

PROTOCOL = http:/
API_URL = $(PROTOCOL)/www.stackoverflow.com

这种方式协议可以在其他地方使用

于 2022-01-27T13:19:25.633 回答
-4

您不应为此设置使用 xcconfig 文件。

xcconfig 文件不是“普通”头文件或模块文件,它是预处理器的输入,最终是编译器的输入。没有指定 xcconfig 文件解析器如何处理字符编码、是否识别转义序列、是否扩展宏以及如何定义字符文字等等。

在这种情况下,最好有一个“config.h”头文件并使用基于预处理器定义的条件:

#if defined (DEBUG)
    NSURL* url = ...
#else
    NSURL* url = ...
#endif

此处,DEBUG默认为 Debug 配置定义。您可以在“预处理器宏”下的构建设置中#define 任何其他定义。

于 2014-01-23T20:43:02.010 回答
-7

您可以使用反斜杠转义:

URL = "http:\/\/mydomain.com"

编辑

不要忘记在重新构建之前清理您的项目。

于 2015-02-19T19:58:27.697 回答