Carthage 不知不觉用到了
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 不知不觉用到了的更多相关文章
- ios Carthage
使用CocoaPods来管理第三方框架很多人都知道,相对来说Carthage比较陌生,Carthage也是来管理第三方框架的,既然已经有了Cocoapods为什么还要有Carthage呢?使用Cart ...
- 包管理工具Carthage使用
iOS项目中第三方开源库的工具有Cocoapods和Carthage,swift官方出了一个包管理工具SPM(Swift Package Manager). 首先,大体讲一下Cocoapods和Car ...
- 使用Carthage管理iOS依赖库
Carthage安装和使用和CocoaPods类似: 1.安装: 终端执行以下命令: $ brew update $ brew install carthage 查看Carthage的版本号: $ c ...
- 使用Carthage安装第三方Swift库
http://blog.crazyphper.com/?p=3661 carthage update
- 攻城利器 —— Carthage简单介绍
01 Carthage简单介绍 主页:https://github.com/Carthage/Carthage.git 作者:Justin Spahr-Summers等 版本:0.18 目标:用最简单 ...
- Carthage 安装和使用
和Cocoapods相比各有利弊吧,具体对比参见: Carthage 初探:四大优势与四大劣势 第一步:如果没有安装Homebrew先安装 打开命令终端,直接输入以下命令回车 /usr/bin/rub ...
- Carthage
Carthage Carthage - 一个简单.去集中化的Cocoa依赖管理器
- carthage 简单使用步骤
brew install carthage切至项目目录:cd xxx创建Cartfile文件vi Cartfile填写依赖git "https://xxxxx" "mas ...
- 安装Cocoa 新的依赖管理工具Carthage
Cocoa的依赖管理器,我们已经有了CocoaPods,非常好用,那么为什么还要创建这样一个项目呢?本文翻译自Carthage的Github的README.md,带大家来了解一下这个工具有何不同之处. ...
随机推荐
- 纯真IP数据库(qqwry.dat)转换成最新的IP数据库格式(ipwry.dat)
纯真IP数据库(qqwry.dat)转换成最新的IP数据库格式(ipwry.dat) 转载自:http://blog.cafeboy.org/2011/02/25/qqwry-to-ipwry/ ht ...
- CCmdUI
原文链接地址:http://blog.csdn.net/luicha/article/details/6771185 CCmdUI是一个只被使用于ON_UPDATECOMMAND_UI消息的响应函数中 ...
- Divljak
Divljak Alice 有 $n$ 个字符串 $ S_1,S_2,\cdots,S_n $ ,Bob有一个字符串集合 $T$ ,一开始集合是空的. 接下来会发生 $q$ 个操作,操作有两种形式: ...
- 【CF edu 30 A. Chores】
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- 【BZOJ 3505】 [Cqoi2014]数三角形 容斥原理+排列组合+GCD
我们先把所有三角形用排列组合算出来,再把一行一列上的三点共线减去,然后我们只观察向右上的三点共线,向左上的乘二即可,我们发现我们如果枚举所有的两边点再乘中间点的个数(GCD),那么我们发现所有的两边点 ...
- Android-使用ViewFlipper实现轮番切换广告栏
所谓的轮番切换广告栏,指的是下面这个东西,笔主不知道该怎么确切描述这货... 笔主没有百度研究过其他大牛是怎么实现这个功能的,在这里笔主充分发挥DIY精神,利用ViewFlipper闭门土制了一个,下 ...
- bulk_insert_buffer_size and InnoDB
Q: I read the following on this page http://dev.mysql.com/doc/mysql/en/server-system-variables.html ...
- 妮可妮可妮 [Hash]
妮可妮可妮 题目描述 小P特别喜欢动画Love Live中的角色妮可,每当他听到妮可说"niconiconi"时,他总会感到特别兴奋,还会露出绅士般的微笑. 作为一名理论计算机科学 ...
- HNOI2002 彩票 [搜索]
题目描述 某地发行一套彩票.彩票上写有1到M这M个自然数.彩民可以在这M个数中任意选取N个不同的数打圈.每个彩民只能买一张彩票,不同的彩民的彩票上的选择不同. 每次抽奖将抽出两个自然数X和Y.如果某人 ...
- Idea导入的工程看不到src等代码
问题描述: 从其他地方拷贝过来的工程,在本地导入到idea中时,展示如下的页面,里面的其他文件都看不到. 解决办法:(不知道是具体的什么原因引起的) 1. 关闭IDEA, 2.然后删除项目文件夹下的. ...