ios - 使用自定义框架和 Cocoapods 自定义 Xcode 构建配置

标签 ios xcode cocoapods buildconfiguration swift-custom-framework

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

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

登台和生产的两个目标

  • MyProduct (Staging) 使用默认配置调试发布
  • MyProduct(生产) 使用默认配置调试发布

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

每个环境有两个构建配置

所以我改变了配置,如下所示:

  1. 我将调试更改为调试分段
  2. 我将发布更改为发布暂存
  3. 我添加了调试生产
  4. 我添加了发布生产

我还需要更新方案设置才能使用正确的配置。

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

自定义框架和 CocoaPods 的问题

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

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

  • Command MergeSwiftModule failed with a nonzero exit code
  • Framework not found "Pods_MyProject"

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

最佳答案

结果,当不再有默认的 DebugRelease 配置时,Cocoapods 会变得有些困惑。运行 pod install 后,我实际上可以看到 Pods Xcode 项目的 6 个构建配置:

  • 调试
  • 调试阶段
  • 调试生产
  • 释放
  • 发布阶段
  • 发布制作

解决方案

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

  • 调试 <-- 生产
  • 调试阶段
  • 发布 <-- 生产
  • 发布阶段

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

关于ios - 使用自定义框架和 Cocoapods 自定义 Xcode 构建配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58621565/

相关文章:

ios - Facebook 的重要帐户特定功能是什么

ios - 如何用两个 "tabs"更好地实现 UITableView ?

iphone - iPhone开发和Mac OSX开发的区别

ios - 如何快速显示数组的所有元素?

ios - 删除 cocoa pod 后丢失文件

ios - 什么 iOS pod 在 PrivateFrameworks/ScreenReaderCore.framework 中使用 SCRCException?

objective-c - Xcode链接错误 "symbol(s) not found for architecture x86_64"

ios - 从选取器 View 中获取选定值的函数

ios - Xcode 11.4 循环引用错误

iphone - NSSortDescriptor 未被调用