为同一个项目编译不同的代码 - Swift框架

时间:2016-06-14 13:26:46

标签: ios xcode swift

我有几个使用相同核心框架的应用程序,因为每个应用程序都有一些小差异,我正在寻找使用相关代码和参数构建框架的最佳方法。 我发现的最佳解决方案(不太好)是:

  1. 针对不同的代码编译 - 使用包含不同类的目标
  2. 对于每种配置使用不同Swift标志的不同配置(例如,debug,release ...)
  3. 问题是:

    1. 我正在使用多个目标,每个目标都复制了项目配置,我需要维护所有目标。如果我在一个目标中更改配置但忘记在其他目标上更改它,这种方法可能会导致一些错误。
    2. 用于调试/发布& stagingA / stagingB / production我正在创建特定的配置而不是组合它们(这个解决方案是有问题的,因为每次升级我需要复制它以进行发布和调试):
      1. 发布生产
      2. 调试生产
      3. 发布stagingA
      4. debug stagingA
      5. 发布stagingB
      6. debug stagingB
    3. Apps结构是:

      • App A包含CoreFramework,其代码调整为A
      • 应用B包括CoreFramework,其中包含B
      • 的代码调整

      每个应用都有调试,发布,生产......配置。此配置会影响框架(这些配置也在框架上运行)

      ==>我正在寻找其他/更好的方法来配置我的应用程序项目

1 个答案:

答案 0 :(得分:2)

不要进行代码调整"在基于客户端调用它的框架中。

构建您的框架,就好像它是外部供应商提供的二进制版本。任何可能变量的行为都只能通过公共API的运行时配置来控制。