如何在xcconfig文件中configuration完整的URL

我有一个xcconfig文件,其中包含我的应用程序应该打到哪个服务器的configuration。 在debugging模式下,这将是与发布版本不同的服务器。

我遇到的问题是在双斜杠之后,将forms为http://www.stackoverflow.com的URL视为注释。 所以我在代码中得到的string是'http:'

我已经读过,我可以在Info.plist上添加一个传统的构build标志,我想知道是否有其他人有类似的问题,并已经解决了?

谢谢。

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

 WEBSITE_URL = https:/$()/www.example.com 

我也无法弄清楚如何在xcconfig文件中使用双斜线。 但是我find了一个解决方法

  • Re:在.xcconfig定义的构build设置中双斜杠

从Xcode用户邮件列表中:在xcconfigfile中 ,保存不使用httpscheme的URL:

 MYURL = stackoverflow.com 

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

 http://${MYURL} 

只是申报

 SIMPLE_SLASH=/ 

然后你的url变成

 http:$(SIMPLE_SLASH)/www.stackoverflow.com 
 SLASH=/ API_URL=http:$(SLASH)/endpoint.com 

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

xcconfig文件不是“正常的”头文件或模块文件,它是预处理程序的input,最终是编译器的input。 它没有指定xcconfig文件parsing器如何处理字符编码,是否识别转义序列,是否扩展macros,以及如何定义字符文字等等。

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

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

这里, DEBUG默认定义为Debugconfiguration。 您可以在“预处理器macros”下的构build设置中定义任何其他定义。

您可以使用反斜杠来转义:

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

编辑

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