【问题标题】:Compile different code for same project - Swift framework为同一个项目编译不同的代码 - Swift 框架
【发布时间】:2025-11-30 00:30:03
【问题描述】:

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

  1. 针对不同的代码编译 - 使用包含不同类的目标
  2. 对于不同的配置,每个配置使用不同的 Swift 标志(例如调试、发布...)

问题是:

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

应用结构是:

  • 应用 A 包含 CoreFramework 以及 A 的代码调整
  • App B 包含 CoreFramework 以及 B 的代码调整

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

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

【问题讨论】:

    标签: ios xcode swift


    【解决方案1】:

    不要根据客户端调用的框架在框架中进行“代码调整”。

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

    【讨论】:

    • 我需要为每个应用程序进行“代码调整”,例如,我不想为特定应用程序公开公共 API,而其他应用程序需要它。
    • 很抱歉听到这个消息...听起来您当前的问题只是糟糕设计的自然结果。