在同一项目中使用 Carthage 和 CocoaPods

Using Carthage and CocoaPods in the same project

我目前正在寻找一个仅支持 Carthage 作为包管理器的库。我希望与之集成的项目已经具有一些 CocoaPods 依赖项。有人试过同时使用这两个管理器吗?

我觉得这是个坏主意,但我很想知道实际情况是否如此。

您将 运行 遇到的主要问题是 CocoaPods 和 Carthage 彼此不了解。这意味着如果 CocoaPods 管理的依赖项和 Carthage 管理的依赖项共享一个共同的依赖项,可能会 发生冲突。

Carthage 要求您手动将框架添加到项目中,这意味着您可能可以不链接任何共享依赖项并依赖 CocoaPods 添加的框架,但您不会在两者之间获得依赖项版本解析依赖管理器,并不清楚它是如何工作的。

话虽如此,没有任何内在原因不能同时使用这两者,如果您要包含的库很少或没有依赖项,使用 Carthage 可能仍然比包含该库更可取作为子模块,甚至复制源代码。

如果可能的话,我的建议是通过 Carthage 包含您的其他依赖项,或者为该库创建一个 podspec,以便您可以专门使用 Carthage 或 CocoaPods。

使用单个依赖项管理器以获得最佳的版本处理体验是一种很好的做法。您可以要求框架的开发人员支持它。有很多边缘情况,但 CocoaPods 和 Carthage 之间并不冲突,这就是为什么可以同时使用它们

[CocoaPods vs Carthage]