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