问题陈述: - 我使用的是第三方库,需要有config.plist(名称必须相同),Config.plist有几个键值对,用于生产,Dev和说明环境,密钥的值确实会发生变化。 现在我需要手动更改文件名,就像我需要在生产环境中运行应用程序一样,我确实将文件名ConfigPROD.plist更改为Config.plist, 对于暂存,我确实将文件名从ConfigDev.plist更改为Config.plist。
需要解决方案如: - 我可以使用预处理器宏更改文件内容,例如
#if isProductionBuild == 1
#define kBaseURL @"https://api.base.com/bart/"
#define kEnvironmnet @"PROD"
***//copy ConfigPROD.plist file content into Config.plist***
#elif isStageBuild == 1
#define kBaseURL @"https://api-stage.base.com/bart/"
#define kEnvironmnet @"stg"
*//copy ConfigSTG.plist file content into Config.plist*
#else
#define kBaseURL @"https://api-dev.base.com/bart/"
#define kEnvironmnet @"dev"
*//copy ConfigDEV.plist file content into Config.plist*
#endif
请查看我们是否具有“将ConfigDEV.plist文件内容复制到Config.plist”等功能
注意: - 此文件复制操作应在第三方库开始使用Config.plist之前完成。
答案 0 :(得分:1)
您不需要预处理器宏,需要先执行运行脚本构建阶段。有关简介,请参阅Running a Script While Building a Product。只需创建一个查看$CONFIGURATION
的Bash脚本(它将是 Debug 或 Release 或您拥有的任何其他配置名称),然后重命名一个或另一个文件。类似的东西:
mv ./Config.plist ./Config.plist.orig
if [[ 'Release' == ${CONFIGURATION} ]]; then
cp ./Config.PROD.plist ./Config.plist
else
cp ./Config.DEV.plist ./Config.plist
要轻松处理此问题,请将所有3个文件(Config.plist
,Config.DEV.plist
和Config.PROD.plist
)添加到Xcode,但仅添加第一个 目标(选中右侧面板中的框)。您可以在此文件中使用默认设置,无论如何都会被覆盖。
如果您使用的是 git 或类似内容,则可以在构建结束时添加另一个运行脚本阶段,以恢复原始Config.plist
以隐藏您对git的更改。< / p>