【问题标题】:Which one is the best practice for multiple environment settings in Xcode for iOS project?哪一个是 Xcode for iOS 项目中多个环境设置的最佳实践?
【发布时间】:2017-09-10 05:15:46
【问题描述】:

到目前为止,我知道有几种针对多种环境设置的解决方案。

Solution 1:为不同的环境准备不同的plist文件。然后,使用 Add Run Script Build Phase 复制特定的 plist 文件以覆盖项目 plist 文件。

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

$(kBaseURL)

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

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

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

哪种方式是最好的做法?

【问题讨论】:

  • 最好怎么做?为了什么?除非您指定条件,否则基本上没有任何“最好”的东西。
  • @SamiKuhmonen 那么,请告诉我如何切换环境设置?

标签: ios xcode


【解决方案1】:

我认为这也是一个品味问题以及你实际想要达到的目标。

例如,您可能希望有一个不与 Internet 通信的调试配置,而是使用 HTTP 存根来模拟请求。这将无法通过简单地复制 plist 来实现。

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

【讨论】:

    猜你喜欢
    • 2023-01-30
    • 2011-03-21
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    相关资源
    最近更新 更多