我目前正在寻找一个只支持Carthage作为包管理器的库。我想要整合它的项目已经有一些CocoaPods依赖项。有没有人试过同时使用这两个经理?
这对我来说是一个坏主意,但我很想知道实际情况是否如此。
答案 0 :(得分:28)
你将遇到的主要问题是CocoaPods和Carthage彼此不了解。这意味着如果由CocoaPods管理的依赖项和Carthage的依赖项共享一个公共依赖项,则会出现 冲突。
Carthage要求您手动将框架添加到项目中,这意味着您可能无法链接任何共享依赖项并依赖CocoaPods添加的框架,但您不会在两个依赖项管理器中获得依赖项版本解析并且不清楚这一切是如何运作的。
话虽如此,没有任何内在的原因可以解释为什么你不能同时使用它们,如果你想要包含的库很少或没有依赖,那么使用Carthage可能仍然更可取,而不是将库包含为子模块甚至复制源。
如果可能,我的建议是通过Carthage包含您的其他依赖项,或者为库创建podspec,以便您可以专门使用Carthage或CocoaPods。
答案 1 :(得分:0)
使用单个Dependency Manager以获得最佳版本处理经验是一个好习惯。您可以要求框架的开发人员提供支持。有很多边缘情况,但CocoaPods和Carthage彼此之间没有冲突,这就是为什么可以同时使用它们的原因