Carthage 是什么?


这个问题我们简单点一句话总结: 你知道什么事CocoaPods吧,我相信只要是做iOS的都知道,Carthage 的属性和作用和我们常用的CocoaPods都是一样的,这样我相信不知道这玩意的同学也就知道了它是用来干嘛的。我们也就不再过多的解释。

Carthage和CocoaPods有什么不同吗?


1、使用了CocoaPods的项目是高度集成的,而Carthage更灵活强调尽可能将任务委托给Xcode和Git。

"CocoaPods在使用中会自动创建和更新workspace、依赖和Pod项目并进行整合;

"Carthage在使用中不需要创建和集成相应的workspace和project,只需要依赖打包好的framework文件即可。

"总结一下,CocoaPods的方法更容易使用,而Carthage更灵活且对项目没有侵入性。

2、CocoaPods相对来说功能要比Carthage多很多,因此也更复杂,而CocoaPods配置简单项目干净。

3、CocoaPods有一个中心仓库,而Carthage是去中心化的,没有中心服务器也就避免了可能因中心节点错误而带来的失败,即Carthage每次配置和更新环境,只会去更新具体的库,时间更快。

4、想让自己的第三方库支持Carthage比让其支持CocoaPods更加的简单。

Carthage的不足


1、库依然不如 CocoaPods 丰富

2、仅支持iOS8+

3、工具尚且不如CocoaPods(已经发布了app)

4、在使用第三方库的过程中无法查看源码

Carthage的安装和卸载


安装方式我就建议直接PKG安装,简单粗暴:  下载地址 ----- https://github.com/Carthage/Carthage/releases

当然还有另外的安装方式,具体的大家可以看看 Carthage  具体git上是怎么说的

卸载就比较简单了:终端  $ brew uninstall Carthage

Carthage的使用


它的使用是重点,但我不想直接说它是怎么用的就完事了,我最近有看《APP架构》这本书,关于这本书在我们微信的小专栏也有王巍的翻译版本,具体的关于这本书的代码内容以及视频都在这里 https://github.com/objcio/app-architecture

在看关于MVVM-C这部分的代码的时候,编译它的项目的时候就接触到了Carthage 。因为它用到了 RxSwift 这个函数式框架,要是细心点的话就会在它的项目代码中看到这份README (read me)哈哈

当你点开真的去read he 之后,就看到以下内容:

其实上面这份文件已经说得差不多了,我们说一点需要我们注意的,这点内容送给可能也是在看这本书,可能也是有遇到这点小麻烦的同学。

关于上面这个你首先把它的 Cartfile 文件和 Cartfile.resolved 删除了,因为我们要使用更新一点的三方资源

然后按下面步骤走:(用终端)

1、cd 到项目路径下

2、touch  Cartfile

3、Cartfile 文件里面添加 RxDataSources 的路径就可以了,不要直接按照下面写  

github "ReactiveX/RxSwift" "4.4.0"

github "RxSwiftCommunity/RxDataSources" "3.1.0"

 因为不行

正确的做法是:

github "RxSwiftCommunity/RxDataSources" "3.1.0"  就可以了! why?

            因为RxDataSources是依赖RxSwift的,座椅他会自己去添加,如果你要是按照上面错误的写法,你会发现RxDataSources的framework你是死活都拉不进去的!

       4、终端执行:Carthage update --platform iOS

5、把你需要的framework从下面这个路径当中找到添加到你的 Link Binary With Libraries 中

Carthage  --  Build  --  iOS  --  需要的 framework

要想更新一下三方库该怎么办?


更新多个框架:修改Cartfile文件,并重新执行 $ Carthage update 

更新某个框架:$ Carthage update 具体的框架名称

Carthage 不知不觉用到了的更多相关文章

  1. ios Carthage

    使用CocoaPods来管理第三方框架很多人都知道,相对来说Carthage比较陌生,Carthage也是来管理第三方框架的,既然已经有了Cocoapods为什么还要有Carthage呢?使用Cart ...

  2. 包管理工具Carthage使用

    iOS项目中第三方开源库的工具有Cocoapods和Carthage,swift官方出了一个包管理工具SPM(Swift Package Manager). 首先,大体讲一下Cocoapods和Car ...

  3. 使用Carthage管理iOS依赖库

    Carthage安装和使用和CocoaPods类似: 1.安装: 终端执行以下命令: $ brew update $ brew install carthage 查看Carthage的版本号: $ c ...

  4. 使用Carthage安装第三方Swift库

    http://blog.crazyphper.com/?p=3661 carthage update

  5. 攻城利器 —— Carthage简单介绍

    01 Carthage简单介绍 主页:https://github.com/Carthage/Carthage.git 作者:Justin Spahr-Summers等 版本:0.18 目标:用最简单 ...

  6. Carthage 安装和使用

    和Cocoapods相比各有利弊吧,具体对比参见: Carthage 初探:四大优势与四大劣势 第一步:如果没有安装Homebrew先安装 打开命令终端,直接输入以下命令回车 /usr/bin/rub ...

  7. Carthage

    Carthage Carthage - 一个简单.去集中化的Cocoa依赖管理器

  8. carthage 简单使用步骤

    brew install carthage切至项目目录:cd xxx创建Cartfile文件vi Cartfile填写依赖git "https://xxxxx" "mas ...

  9. 安装Cocoa 新的依赖管理工具Carthage

    Cocoa的依赖管理器,我们已经有了CocoaPods,非常好用,那么为什么还要创建这样一个项目呢?本文翻译自Carthage的Github的README.md,带大家来了解一下这个工具有何不同之处. ...

随机推荐

  1. 【题解】NOI2009管道取珠

    又是艰难想题的一晚,又是做不出来的一题 (:д:) 好想哭啊…… 这题最关键的一点还是提供一种全新的想法.看到平方和这种东西,真的不好dp.然而我一直陷在化式子的泥潭中出不来.平方能够联想到什么?原本 ...

  2. Visual Studio调试之断点技巧篇

    原文链接地址:http://blog.csdn.net/Donjuan/article/details/4618717 函数断点 在前面的文章Visual Studio调试之避免单步跟踪调试模式里面我 ...

  3. 【NOIP模拟赛】 permutation 数学(打表)

    biubiu~~~ 这道题卡读题卡得很死......首先他告诉我们读循环的时候要顺着圈读,然后又说这个圈在数列上要以最大数开始读,而且以这样的循环的首数排序,得到的序列与原序列一样那么他就是可行序列, ...

  4. BZOJ 4318: OSU! 期望概率dp && 【BZOJ3450】【Tyvj1952】Easy 概率DP

    这两道题是一样的...... 我就说一下较难的那个 OSU!: 这道15行的水题我竟然做了两节课...... 若是f[i][0]=(1-p)*f[i-1][0]+(1-p)*f[i-1][1],f[i ...

  5. JavaScript的相等(==)与全等(===)

    有段代码如下: view source   print? 1 if (![] == []) { 2     //Code 3 } ![] == [],true or false? 我们都知道,ECMA ...

  6. json 串转成 java 对象再拼接成前台 html 元素

    获取商品参数 json 串,转成 java 对象,再拼接成前台 html 的Service方法 @Override public String getItemParam(Long itemId) { ...

  7. Educational Codeforces Round 11 A

    A. Co-prime Array time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  8. c++编辑器下载地址

    https://msdn.itellyou.cn/ 输入上述地址选中下图所示的按钮:

  9. 使用bcrypt进行加密的简单实现

    Bcrypt百度百科: bcrypt,是一个跨平台的文件加密工具.由它加密的文件可在所有支持的操作系统和处理器上进行转移.它的口令必须是8至56个字符,并将在内部被转化为448位的密钥. 除了对您的数 ...

  10. 基于js的地理数据的几何运算turfjs

    Doc: http://turfjs.org/static/docs/global.html Openlayers3 Sample: http://jsfiddle.net/d6o81vc7/