具有自定义框架和Cocoapods的自定义Xcode构建配置

时间:2019-10-30 08:52:29

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

我有一个带有主要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来生成Pod的配置。它成功了,我可以使用不同的配置来构建和运行我的主要目标。

现在的问题是,我无法再单独构建自定义框架,也无法对其进行单元测试。我遇到类似这样的错误:

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

我已经尝试过从清理派生数据到分解CocoaPods的所有事情。

1 个答案:

答案 0 :(得分:0)

结果是,当不再有默认的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

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