自定义 Xcode 使用自定义框架和 Cocoapods 构建配置
Custom Xcode Build Configurations with Custom Frameworks and Cocoapods
我有一个项目有一个主要的 iOS 目标,一些源文件在同一个项目中的自定义框架,以及 CocoaPods.
我最近更改了我的 Xcode 构建配置名称并添加了两个以涵盖两个环境(暂存、生产)以及每个环境的调试和发布配置。
暂存和生产的两个目标
MyProduct (Staging)
默认配置 Debug
, Release
MyProduct (Production)
默认配置 Debug
, Release
每次都必须在保存对话框中检查两个目标,这让我很恼火。我决定只有一个目标但有多个构建配置。令人惊讶的是,您几乎可以使用 Info.plist 文件中的构建配置和变量来完成所有事情。
每个环境两个构建配置
所以我像这样更改了配置:
- 我把
Debug
改成了Debug Staging
- 我把
Release
改成了Release Staging
- 我加了
Debug Production
- 我加了
Release Production
我也需要更新方案设置才能使用正确的配置。
由于您更改的是项目中的配置而不是单个目标中的配置,因此所有目标都将获得这些配置。
自定义框架和 Cocoa 的问题Pods
因为我使用的是 CocoaPods,所以我 运行 pod install
也为 Pods 生成配置。它成功了,我可以用不同的配置构建和 运行 我的主要目标。
现在的问题是我既不能再单独构建自定义框架,也不能再构建它们的单元测试。我收到如下错误:
- Command MergeSwiftModule failed with a nonzero exit code
- Framework not found "Pods_MyProject"
我已经尝试了从清理派生数据到分解 Cocoa 的所有方法Pods。
事实证明,当没有默认 Debug
和 Release
配置时,Cocoapods 会以某种方式混淆。在 运行ning pod install
之后,我实际上可以看到 Pods Xcode 项目的 6 个构建配置:
Debug
Debug Staging
Debug Production
Release
Release Staging
Release Production
解决方案
我决定将 Debug
和 Release
用于生产环境,将 Debug Staging
和 Release Staging
用于暂存环境。我再次 运行 pod install
并且:问题已解决。我看到 Pods 项目的 4 个构建配置:
Debug
<-- 生产
Debug Staging
Release
<-- 生产
Release Staging
所有自定义框架再次成功构建,我可以再次 运行 我的单元测试。
我有一个项目有一个主要的 iOS 目标,一些源文件在同一个项目中的自定义框架,以及 CocoaPods.
我最近更改了我的 Xcode 构建配置名称并添加了两个以涵盖两个环境(暂存、生产)以及每个环境的调试和发布配置。
暂存和生产的两个目标
MyProduct (Staging)
默认配置Debug
,Release
MyProduct (Production)
默认配置Debug
,Release
每次都必须在保存对话框中检查两个目标,这让我很恼火。我决定只有一个目标但有多个构建配置。令人惊讶的是,您几乎可以使用 Info.plist 文件中的构建配置和变量来完成所有事情。
每个环境两个构建配置
所以我像这样更改了配置:
- 我把
Debug
改成了Debug Staging
- 我把
Release
改成了Release Staging
- 我加了
Debug Production
- 我加了
Release Production
我也需要更新方案设置才能使用正确的配置。
由于您更改的是项目中的配置而不是单个目标中的配置,因此所有目标都将获得这些配置。
自定义框架和 Cocoa 的问题Pods
因为我使用的是 CocoaPods,所以我 运行 pod install
也为 Pods 生成配置。它成功了,我可以用不同的配置构建和 运行 我的主要目标。
现在的问题是我既不能再单独构建自定义框架,也不能再构建它们的单元测试。我收到如下错误:
- Command MergeSwiftModule failed with a nonzero exit code
- Framework not found "Pods_MyProject"
我已经尝试了从清理派生数据到分解 Cocoa 的所有方法Pods。
事实证明,当没有默认 Debug
和 Release
配置时,Cocoapods 会以某种方式混淆。在 运行ning pod install
之后,我实际上可以看到 Pods Xcode 项目的 6 个构建配置:
Debug
Debug Staging
Debug Production
Release
Release Staging
Release Production
解决方案
我决定将 Debug
和 Release
用于生产环境,将 Debug Staging
和 Release Staging
用于暂存环境。我再次 运行 pod install
并且:问题已解决。我看到 Pods 项目的 4 个构建配置:
Debug
<-- 生产Debug Staging
Release
<-- 生产Release Staging
所有自定义框架再次成功构建,我可以再次 运行 我的单元测试。