多个命令产生框架问题与 cocoapod 的使用有关

问题描述

我有两个框架“GeneralABC”和“GeneralXYZ”。两者接口相同,业务逻辑不同。我在 podspec 中将它们的 module_name 定义为 General,这样其他使用我的框架的项目只需要定义他们想要在他们的 Podfile 中使用的通用框架(GeneralABC 或 GeneralXYZ),而无需更改它们的代码。 (即在他们的代码文件中,他们总是可以说 import General)

在我的示例项目中,我有两个目标,每个目标使用不同的通用框架。我的 Podfile 如下:

target 'Example_ABC' do
    pod 'GeneralABC'
end

target 'Example_XYZ' do
     pod 'GeneralXYZ'
end

但是,当我尝试在 xcode 中构建目标之一时,出现以下错误 留言

Multiple commands produce '/MYPATH/General.framework':
1) Target 'GeneralABC' has create directory command with output 'MYPATH/General.framework'
2) Target 'GeneralXYZ' has create directory command with output 'MYPATH/General.framework'

Multiple commands produce '/MYPATH/General.framework':
1)Target 'GeneralABC' has link command with output 'MYPATH/General.framework'
2)Target 'GeneralXYZ' has link command with output 'MYPATH/General.framework'

可以通过两种方法解决

  1. 将工作区设置更改为旧版构建系统。但我认为这不是未来的解决方案。

  2. 删除 Podfile 中的一个目标,并在每次构建目标时 pod update。然而,它对于维护和我们的构建过程来说并不是那么好。

有什么解决方案可以让我操作我的 Podfile 来解决问题吗?

我非常感谢任何建议。 感谢您的关注!

解决方法

我找不到我想要的确切解决方案(1 个 pod 文件维护所有目标)。然而,经过与我们的队友的一些讨论。我们提出了另一种解决方案,这样我们就不必担心已弃用的遗留构建系统。

解决方法如下:

创建 2 个 podfile(即 1 个用于目标 'Example_ABC',另一个用于 'Example_XYZ')

创建 2 个工作区文件(即 1 个用于目标 'Example_ABC',另一个用于 'Example_XYZ')

一个迷你 shell 脚本,用于链接 Podfile_ABC 或 Podfile_XYZ,何时执行 pod install/update/deintegrate

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...