在Xcode for iOS项目中,哪一个是多环境设置的最佳实践?
到目前为止,我知道有几种解决方案可用于多种环境设置 :为不同的环境准备不同的plist文件。然后,使用添加运行脚本构建阶段复制特定plist文件以覆盖项目plist文件 解决方案2:在项目->信息->配置中,复制现有配置。设置方案->信息->构建配置。然后,在目标->构建设置中,添加用户定义的设置在Xcode for iOS项目中,哪一个是多环境设置的最佳实践?,ios,xcode,Ios,Xcode,到目前为止,我知道有几种解决方案可用于多种环境设置 :为不同的环境准备不同的plist文件。然后,使用添加运行脚本构建阶段复制特定plist文件以覆盖项目plist文件 解决方案2:在项目->信息->配置中,复制现有配置。设置方案->信息->构建配置。然后,在目标->构建设置中,添加用户定义的设置 $(kBaseURL) 解决方案3:在项目->生成设置中添加预处理器宏以定义环境。然后,在源代码中编写宏来切换环境设置值 #ifdef DEBUG_ENV #define kBaseURL @"ht
$(kBaseURL)
解决方案3:在项目->生成设置中添加预处理器宏以定义环境。然后,在源代码中编写宏来切换环境设置值
#ifdef DEBUG_ENV
#define kBaseURL @"http://debug-server.a.com/api/"
#else
#define kBaseURL @"http://production-server.a.com/api/"
#endif
还有其他几种切换环境设置的方法
$(kBaseURL)
哪种方法是最好的做法?我认为这也是一个品味问题,也是一个你真正想要达到的目标的问题 例如,您可能希望调试配置不与internet通信,而是使用HTTP存根模拟请求。简单地复制plist是不可能的
就个人而言我更喜欢为每个环境创建构建配置,然后为切换预编译器宏的每个配置设置编译器标志。我还想采取一些更复杂的步骤来修改所有配置的bundle id和app name,然后为每个配置创建一个构建方案。这使得我能够从Xcode构建所有环境,并在同一设备上安装所有应用程序,因为捆绑包ID不同。不过设置起来有点棘手。然而,一旦它运行起来:非常适合我的用例:)最佳方式?为了什么?除非您指定条件,否则基本上没有“最好”的东西。@SamiKuhmonen那么,您能告诉我如何切换环境设置吗?