1.Carthage
carthage更加的灵活并且没有入侵性,是去中心化的,就是说需要自己手动将carthage集成到自己的项目当中
优点:把依赖的库都编译成
framework
,这样一来就不需要每次编译工程,都去编译一遍依赖的第三方库缺点:使用的依赖库比较多,集成起来就比较麻烦。
build 是framewotk库需要自行引用进来
checkout 文件夹是从git上下来下来的源码修改了源码,执行carthage build,会编译出修改过的framework
注意:但是如何执行了carthage update 这里的源码就会被覆盖掉
HomeBrew进行安装
$ brew install carthage
1.先进入到项目所在文件夹
$ cd 项目路径
2.创建一个空的Carthage文件
$ touch Cartfile
3.编辑cartfile文件,添加依赖框架
github "Alamofire/AlamofireImage"
github "https://github.com/AFNetworking/AFNetworking"
git "xxx"
4.保存并关闭cartfile文件,进行安装
$ carthage update --no-use-binaries --platform ios
5.项目Target -> Build Setting -> Search Paths -> Framework Search Paths添加
$(PROJECT_DIR)/Carthage/Build/iOS
6.项目Target -> Build Phases -> '+' -> New Run Script Phase,
添加脚本/usr/local/bin/Carthage copy-frameworks
添加"Input Files"$(SRCROOT)/Carthage/Build/iOS/AFNetworking.framework
7.项目Target -> General最底下的Linked Frameworks and Libraries里手动添加需要用的framework.
8.单独更新某一个框架
例如我新加了这两个框架,只需要更新它们,其他不需要更新。github "Alamofire/Alamofire" github "ReactiveX/RxSwift"
则可以只执行这句carthage update Alamofire
2.Pods
优点:
CocoaPods
正好可以解决Carthage
的不足。CocoaPods
使用起来非常方便,因为他不会把依赖库编译提前编译成framework
缺点:
他不会把第三方库编译成功framework
这也会导致工程编译起来比较慢