到目前为止,我知道有几种解决方案用于多种环境设置。
解决方案1:为不同的环境准备不同的plist文件。然后,使用“添加运行脚本构建阶段”复制特定的plist文件以覆盖项目plist文件。
解决方案2:在项目->信息->配置中,复制现有配置。设置方案->信息->生成配置。然后,在目标->构建设置中,添加用户定义的设置.
$(kBaseURL)解决方案3:在项目->构建设置中添加预处理宏以定义环境。然后,在源代码中编写宏来切换环境设置值。
#ifdef DEBUG_ENV
#define kBaseURL @"http://debug-server.a.com/api/"
#else
#define kBaseURL @"http://production-server.a.com/api/"
#endif还有其他几种切换环境设置的方法。
这样做的最佳做法是哪一种?
发布于 2018-01-18 02:07:50
我认为这也是一个品味的问题,也是你真正想要达到的目标。
例如,您可能希望有一个调试配置,它不与internet对话,而是使用HTTP存根来模拟请求。这是不可能的,只要简单地复制褶皱。
个人我更喜欢为每个环境创建构建配置,然后为每个切换预编译器宏的配置设置一个编译器标志。我还喜欢采取一些更复杂的步骤来修改包id和应用程序名,然后为每个配置创建一个构建方案。这使我能够从Xcode构建所有环境,并在同一个设备上安装所有应用程序,因为包in是不同的。不过,设置起来有点棘手。但是,一旦它运行起来:非常适合我的用例:)
https://stackoverflow.com/questions/46137515
复制相似问题