哪个是Xcode for iOS项目中多个环境设置的最佳实践?

时间:2017-09-10 05:15:47

标签: ios xcode

到目前为止,我知道有多种解决方案适用于多种环境设置。

Solution 1 :为不同的环境准备不同的plist文件。然后,使用“添加运行脚本构建阶段”复制特定的plist文件以覆盖项目plist文件。

解决方案2 :在PROJECT中 - >信息 - >配置,复制现有配置。设置方案 - >信息 - >构建配置。然后,在目标中 - >构建设置,添加用户定义的设置。

$(kBaseURL)

解决方案3 :在PROJECT中添加预处理器宏 - >构建设置以定义环境。然后,在源代码中写入宏来切换环境设置值。

#ifdef DEBUG_ENV
#define kBaseURL @"http://debug-server.a.com/api/"
#else
#define kBaseURL @"http://production-server.a.com/api/"
#endif

还有其他几种切换环境设置的方法。

这样做的最佳做法是哪种方式?

1 个答案:

答案 0 :(得分:1)

我认为这也是一个品味和你实际想要实现的问题。

例如,您可能希望调试配置不与Internet通信,而是使用HTTP存根来模拟请求。简单地复制钳子就不可能实现这一点。

个人我更喜欢为每个环境创建构建配置,然后为每个切换预编译器宏的配置设置编译器标志。我还想采取一些更棘手的步骤来修改所有配置的bundle id和app name,然后为每个配置创建一个构建方案。这使我能够从Xcode构建所有环境并在同一设备上安装所有应用程序,因为捆绑ID不同。虽然设置起来有点棘手。但是一旦它运行:完美的我的用例:)