【问题标题】:Custom Xcode Build Configurations with Custom Frameworks and Cocoapods使用自定义框架和 Cocoapods 自定义 Xcode 构建配置
【发布时间】:2020-02-25 12:39:49
【问题描述】:

我有一个项目,其中包含一个主要的 iOS 目标、一些源文件在同一个项目中的自定义框架以及 CocoaPods。

我最近更改了我的 Xcode 构建配置名称并添加了两个以涵盖两个环境(暂存、生产)以及每个环境的调试和发布配置。

暂存和生产的两个目标

  • MyProduct (Staging) 默认配置 Debug, Release
  • MyProduct (Production) 默认配置 Debug, Release

每次都必须在保存对话框中检查两个目标,这让我非常恼火。我决定只有一个目标,但有多个构建配置。令人惊讶的是,您几乎可以使用 Info.plist 文件中的构建配置和变量来完成所有工作。

每个环境有两个构建配置

所以我改变了这样的配置:

  1. 我把Debug改成了Debug Staging
  2. 我把Release改成了Release Staging
  3. 我添加了Debug Production
  4. 我加了Release Production

我也需要更新方案设置以使用正确的配置。

由于您更改项目中的配置而不是单个目标中的配置,因此所有目标都将获得这些配置。

自定义框架和 CocoaPods 的问题

由于我使用的是 CocoaPods,因此我还运行了 pod install 来生成 Pod 的配置。它成功了,我可以使用不同的配置构建和运行我的主要目标。

现在的问题是我不能再单独构建我的自定义框架,也不能进行单元测试。我收到如下错误:

  • Command MergeSwiftModule 失败,退出代码非零
  • 找不到框架“Pods_MyProject”

我已经尝试过从清理派生数据到解构 CocoaPods 的所有方法。

【问题讨论】:

    标签: ios xcode cocoapods buildconfiguration swift-custom-framework


    【解决方案1】:

    事实证明,当没有默认的 DebugRelease 配置时,Cocoapods 会莫名其妙地感到困惑。在运行pod install 之后,我实际上可以看到 Pods Xcode 项目的 6 个构建配置:

    • Debug
    • Debug Staging
    • Debug Production
    • Release
    • Release Staging
    • Release Production

    解决方案

    我决定将DebugRelease 用于生产环境,将Debug StagingRelease Staging 用于暂存环境。我再次运行pod install 并且:问题解决了。我看到 Pods 项目的 4 个构建配置:

    • Debug
    • Debug Staging
    • Release
    • Release Staging

    所有自定义框架再次成功构建,我可以再次运行我的单元测试。

    【讨论】:

    • 您也可以将构建配置添加到您的自定义框架中,但这很麻烦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    • 2016-08-20
    • 2015-07-18
    • 1970-01-01
    相关资源
    最近更新 更多