macOSiOS开发iOS Developer

Carthage | 最优秀的Swift第三方库管理工具

2017-12-15  本文已影响382人  清無
Carthage

2018-03-09更新

如果要让你自己的framework支持Carthage的build编译,只需要在工程的对应target的scheme勾上shared选项即可

Manage Schemes Shared

iOS第三方库管理工具

相信CocoaPods对很多经常使用OC开发的人来说已经很熟悉了,它是基于Ruby语言编写的一个管理工具,它的使用我这里不再赘述,详见:https://github.com/CocoaPods/CocoaPods

Swift Package Manager业内简称为SPM,是苹果官方在Swift3.0时集成在系统里的第三方库管理工具(库),用它可以自动downloading、compiling和linking第三方库,使用起来也十分简洁高效,不过缺点是目前只支持mac OS。
详见:https://swift.org/package-manager

Carthage是一个用Swift语言编写的开源的,专为Swift工程中第三方库的管理而产生的一个工具,使用起来十分简单,下面重点介绍它的用法和注意的地方。
详见:https://github.com/Carthage/Carthage

Carthage

Carthage和CocoaPods对比

Carthage和SPM对比

安装

brew install carthage

更新

brew update
brew upgrade carthage

或者

brew update
brew uninstall carthage
brew install carthage

集成

github "Alamofire/Alamofire" == 4.5
# 或
github "Alamofire/AlamofireImage" ~> 3.2
== 毫无疑问是说必须为指定版本,如果没有,就不下载编译;
>= 使用大于或等于指定版本的库,如果有最新,则使用最新的;
~> 则是一个开区间,如“~>1.1.0”则会返回“1.1.1~1.9.9”之间的版本,不包括2.0.0;

编译

Carthage默认是调用XcodeBuilder工具将下载好的project编译成framework的,所以编译前的第一步工作是指定要编译库得Xcode版本:

xcode-select --print-path
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer 

注意:有些第三方库是用Swift4.0编写的,所以你集成时必须用Xcode9+编译,不然会报错。

cd `你的Cartfile文件所在目录`
carthage update --platform iOS

注意:如果你不指定--platform iOS的话,默认Carthage会编译成mac OS、tv OS、iOS三个平台的framework,很明显,前两者编译用不着,却占用了编译时间,所以建议加上此命令。

*** Fetching Alamofire
*** Checking out Alamofire at "4.5.0"
*** xcodebuild output can be found in /var/folders/cn/tknd724s0fv8pbdcbkg2sb6w0000gn/T/carthage-xcodebuild.no8ytB.log
*** Building scheme "Alamofire iOS" in Alamofire.xcworkspace
Carthage/ image.png Cartfile.resolved

也可以用Xcode打开Cartfile.resolved文件:open -a Xcode Cartfile.resolved

注意:如果别人想用你的工程,或在多人协作工作时,只需要将Cartfile.resolved添加到版本控制中,不需要将Carthage文件夹下的任何文件添加,当别人拿到你的工程时,只需要执行命令[carthage bootstrap]就可以编译到特定的库。

链接

手动嵌入framework
import Alamofire

相关链接

如果对你有帮助,别忘了给个👍哦,有问题欢迎在下面留言讨论。

上一篇 下一篇

猜你喜欢

热点阅读