我目前正在使用 .xcconfig 文件来管理 iOS 应用程序的各种构建设置,并且通常效果很好。我发现如果我只在构建之间修改 .xconfig 文件中的值,那么这些更改不会内置到应用程序中。我目前正在从宏值映射我的 info.plist 中的值。
例如,我有一个变量,如ENDPOINT_URL = someURL.com/v1
. 如果以后,我所做的唯一更改是进行修改ENDPOINT_URL = someURL.com/v2
,则值是我项目的构建设置中的更改。在我的 info.plist 中,我正在像这样映射条目EndpointURL: ${ENDPOINT_URL}
(不是精确的 plist 语法,而是一般的想法)。但是当从我的 info.plist 中读取它时,[bundle objectForInfoDictionaryKey:@"EndpointURL"]
它仍然具有 value someURL.com/v1
。
我发现清理、删除派生数据、重新启动 Xcode 通常可以正常工作。但不总是。无论如何,这不是一个很好的解决方案。
关于如何强制 Xcode 始终使用我的 .xcconfig 文件中的值的任何想法?最初创建配置文件时,我看到了添加构建阶段脚本的答案,该脚本touch
在我的项目的 main.m 上运行命令以强制在构建时进行协同设计,但它似乎不起作用。
谢谢!
编辑根据https://stackoverflow.com/a/41845248/962024,这看起来像是一个应该在Xcode 8.3(我目前正在使用)中解决的问题。看来是时候报备雷达了。