1

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

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

分期和生产的两个目标

  • MyProduct (Staging)使用默认配置DebugRelease
  • MyProduct (Production)使用默认配置DebugRelease

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

每个环境有两个构建配置

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

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

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

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

自定义框架和 CocoaPods 的问题

因为我使用的是 CocoaPods,所以我也跑来pod install为 Pods 生成配置。它成功了,我可以使用不同的配置构建和运行我的主要目标。

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

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

从清理派生数据到解构 CocoaPods,我已经尝试过各种方法。

4

1 回答 1

3

Debug事实证明,当不再有默认值和Release配置时,Cocoapods 会以某种方式感到困惑。运行后,pod install我实际上可以看到 Pods Xcode 项目的 6 个构建配置:

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

解决方案

我决定将DebugandRelease用于生产环境和Debug Staging暂存Release Staging环境。我又跑pod install了:问题解决了。我看到 Pods 项目的 4 个构建配置:

  • Debug<-- 生产
  • Debug Staging
  • Release<-- 生产
  • Release Staging

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

于 2019-10-30T08:52:29.847 回答