ios - 多个命令产生框架问题(与 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'
可以通过两种方式解决:
将工作区设置更改为旧版构建系统。但是我认为这不是未来的解决方案。
删除 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
推荐阅读
- excel - 当“N”放置在特定单元格内时,插入“N”个格式化行
- bash - 在 bash for 循环中使用 sed 时变量不扩展
- python - 创建 tkinter.Toplevel() 对象时出现“str”对象不可调用错误
- python - 第 8 行的块标记无效:'endblock'。您是否忘记注册或加载此标签?
- mysql - 如何在 SQL 中选择一个连续的日期
- java - 未收到 java 数据报套接字(本地主机)
- c++ - c ++静态多态性(CRTP)在评估`static constexpr`时导致类型不完整
- sas - 计算基本统计数据时格式化时间变量
- bing-maps - 使用集合在 powerapps BingMaps 上显示多个图钉
- php - 同时在自定义应用程序和 wordpress 中进行身份验证?