PS:本文旨在介绍Carthage的使用,为初学者提供一个Carthage学习的入口,高手如不喜欢请绕行~
在项目中究竟是使用Carthage管理第三方库,还是使用CoocaPods管理第三方库?如果是个人独立开发,看自己的喜好了;如果是团队开发,以团队成员商量结果为准。
Carthage是什么?
-
主页:Carthage:https://github.com/Carthage/Carthage
-
目标:Carthage旨在使用最简单的方式来管理Cocoa等第三方框架。
-
原理:自动将第三方框架编译为动态库(Dynamic framework)。
-
优点:Carthage为用户管理第三方框架和依赖,但不会自动修改项目文件或构建设置,开发者可以完全控制项目结构和设置。
-
缺点:只支持iOS 8.0+,不能用来开发iOS 8.0以前的项目。
Carthage与CocoaPods的区别
1、Cocoapods通过创建一个更集中的生态系统来提高第三方开源库的可维护性和参与度,而Carthage强调尽可能灵活的将任务委托给Xcode和Git;
2、Cocoapods在使用中会自动创建和更新workspace、依赖和Pod项目并进行整合;
3、Carthage在使用中不需要创建和继承相应的workspace和project,只需要依赖打包好的framework文件即可。
总结:
Cocoapods的方法更加简单粗暴容易使用,而Carthage则更灵活且对项目没有侵入性。
CocoaPods项目还必须具有Podspec文件,其中包括有关该项目的元数据,并指出如何构建它。Carthage用于Xcode构建依赖关系,而不是将它们集成到单个工作空间中,它没有类似的规范文件。
Cocoapods有一个中心仓库,而Carthage是去中心化的,没有中心服务器也就避免了可能因中心节点错误而带来的失败,也减少了维护,即Carthage每次配置和更新环境,只会去更新具体的库,所需时间更短。
Carthage存在的一些缺陷:
1、支持Carthage的第三方库依然不如CocoaPods丰富;
2、仅支持iOS 8.0+;
3、在使用的过程中无法查看第三方库源码。
详见原文链接:http://www.cocoachina.com/cms/wap.php?action=article&id=20107
网友评论