我有一个项目,其中包含主要 iOS 目标、一些源文件位于同一项目中的自定义框架以及 CocoaPods。
我最近更改了 Xcode 构建配置名称,并添加了另外两个名称,以便覆盖两个环境(暂存、生产)以及每个环境的调试和发布配置。
登台和生产的两个目标
MyProduct (Staging)
使用默认配置调试
、发布
MyProduct(生产)
使用默认配置调试
、发布
每次都必须在保存对话框中检查两个目标,这让我很恼火。我决定只有一个目标但有多个构建配置。令人惊讶的是,您可以使用 Info.plist 文件中的构建配置和变量执行几乎所有操作。
每个环境有两个构建配置
所以我改变了配置,如下所示:
- 我将
调试
更改为调试分段
- 我将
发布
更改为发布暂存
- 我添加了
调试生产
- 我添加了
发布生产
我还需要更新方案设置才能使用正确的配置。
由于您更改了项目中的配置而不是单个目标中的配置,因此所有目标都将获得这些配置。
自定义框架和 CocoaPods 的问题
由于我使用的是 CocoaPods,因此我还运行了 pod install
来生成 Pod 的配置。它成功了,我可以使用不同的配置构建和运行我的主要目标。
现在的问题是我既不能再单独构建自定义框架,也不能再构建它们的单元测试。我收到如下错误:
- Command MergeSwiftModule failed with a nonzero exit code
- Framework not found "Pods_MyProject"
我已经尝试过从清理派生数据到分解 CocoaPods 的所有方法。
最佳答案
结果,当不再有默认的 Debug
和 Release
配置时,Cocoapods 会变得有些困惑。运行 pod install 后,我实际上可以看到 Pods Xcode 项目的 6 个构建配置:
调试
调试阶段
调试生产
释放
发布阶段
发布制作
解决方案
我决定在生产环境中使用Debug
和Release
,在生产环境中使用Debug Staging
和Release Staging
暂存环境。我再次运行 pod install 并:问题解决了。我看到 Pods 项目有 4 个构建配置:
调试
<-- 生产调试阶段
发布
<-- 生产发布阶段
所有自定义框架再次成功构建,我可以再次运行我的单元测试。
关于ios - 使用自定义框架和 Cocoapods 自定义 Xcode 构建配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58621565/