美文网首页
学习使用Carthage

学习使用Carthage

作者: 亲亲qin | 来源:发表于2016-02-24 11:08 被阅读392次

    谈到Cocoa的依赖管理器,我们首先想到的就是cocoapods,当然cocoaPods是一款不错的第三方库管理工具,在开发过程中我们使用的最多而且比较熟练。关于cocoaPods的使用在这里就不再多说,今天主要是来介绍一款新的依赖管理工具,即Carthage。

    Carthage简介

    Carthage是一个简单、分散的Cocoa管理器,它能用简单的方法为你的的Coccoa应用添加框架。

    Carthage的优缺点

    首先来说说Carthage的优点
    1、Carthage创建的是去中心化的依赖管理器,没有了在使用CocoaPods的时候创建的Xcode workspace,每次更新环境不再需要连接到中心仓库,节约时间。
    2、使用Carthage轻耦合,更灵活,可以和CocoaPod无缝集成,这时候很多人就会产生疑问,一个项目中同时使用两套包管理工具,不会出错吗?经过我的实际实验,已经完全证明这样做是完全没有问题的,可以放心使用,没有丝毫冲突。
    3、
    当然Carthage也存在自己的缺点
    1、和Cocoapods相比,库依然不是很丰富,尽管很多库不需要声明并改造就直接可以被Carthage使用,但依然有大量库不支持,相信随着不断完善,能够解决这个问题。
    2、Carthage是由Swift语言写的,只支持动态框架,只支持iOS8+;
    3、工具仍不完善:在使用过程中,无法在一个复杂的项目总正确发现库(比如有iOS,Mac deom + framework 的结构)
    4、无法在Xcode里定位到源码:在项目中想要跳转到第三方库去看具体的实现,这里是无法做到的,只能看到库的头文件。

    Carthage工作流程

    1、创建一个Carfile文件,写好你需要的依赖库
    2、执行carthage update 命令拉取源代码并编译为Framework
    3、把编译后的。framework路径加入到Build Setting 中的Framework Search Path中。

    安装

    推荐使用Homebrew进行安装,简单方便,便于维护。

    brew install carthage
    

    注意在安装之前,先更新一下

    brew update
    

    使用

    1、创建Cartfile文件,用来标注你需要的依赖库,对应版本或者Git分支(需要提交到Git)
    2、在创建好的Cartfile文件中添加需要的库,例如:

    github ""AFNetworking/AFNetworking""
    

    3、保存文件

    cartage update
    

    接下来就会看到carthage开始抓取文件并使用xcodebuild构建第三方库:

    终端信息

    更新完成之后会在工程目录下看到多出了一个Carthfile.resolved文件,这个文件用来跟踪项目当前所用的依赖版本号,为了保持多端开发一致(需要提交到Git)。还新增加一个Carthage文件夹,这个文件夹用来存放依赖库的源文件和编译后的文件(不需要提交到Git).Build和Checkouts两个文件。Build中存放的是构建好的framework包

    截图1

    checkouts中存放的是签出的第三方库项目源文件

    截图2

    接下来打开我们的工程,把我们需要的framework添加到我们的工程中。
    General->Linked Frameworks and Libraries,点击加号添加

    截图3

    还有一种添加Framework的方法是,在对应的Target中的Bulid Setting 中的Fr'amework Search Path 项假如以下路径,Xcode便会自动搜索目录下的Framework:

    $(SRCROOT)/Carthage/Build/iOS
    

    如果是OSX项目则把末尾的iOS改为Mac

    在Git中忽略

    如果不想把Carthage的依赖库push到Git仓库中,修改。gitignore文件,增加忽略Carthage文件夹就行

    Carthage

    Carthage

    以上就是Carthage的简单使用,赶紧去练习使用一下吧!

    相关文章

      网友评论

          本文标题:学习使用Carthage

          本文链接:https://www.haomeiwen.com/subject/fcbbkttx.html