文档章节

Carthage使用介绍

王石头
 王石头
发布于 2017/01/05 22:13
字数 809
阅读 125
收藏 0

Carthage(https://github.com/Carthage/Carthage)

这篇文章主要介绍Carthage的使用方式,Carthage创建的是去中心化的依赖管理器,Carthage的设计哲学是设计一个尽可能简单的工具——一个只关心本职工作的依赖管理器,而不是取代部分Xcode的功能,或者需要让框架作者做一些额外的工作。需要注意的是Carthage尽支持处理动态库,所以只支持iOS8.0及以后的系统中。

相信大家对CocoaPods很熟悉,甚至已经习惯了使用CocoaPods。既然CocoaPods这么好用,我们为什么要使用Carthage呢?

1、CocoaPods使用简单,与之相对的,CocoaPods默认会自动创建并更新你的应用程序和所有依赖的Xcode workspace;

2、CocoaPods项目必须包含podspec文件,文件内容为项目的元数据,维护相对复杂。

3、因为国内网络的原因,CocoaPods经常会出现更新慢,版本错误的问题。

4、如果项目太大,集成的三方库过多,则项目的编译时间较长。

Carthage则相对灵活,它使用xcodebuild来编译框架的二进制文件,但如何继承二进制文件则由开发者自己确定。Carthage制作第三方库的方式也相对简单。

安装Carthage

Carthage提供OS X平台的pkg安装文件,你可以从Github的最新release中找到安装文件,下载安装即可。

添加framework到app

1、创建Cartfile文件来管理需要添加的frameworks。

2、在终端中运行carthage update命令。这条命令将会下载项目依赖的项目到Carthage/Checkouts目录,并且编译依赖项目。操作完成后会在Carthage/Build/iOS目录下生成framework文件。

3、打开应用程序target的“General”设置标签,将生成的framework文件拖动到“Linked Frameworks and Libraries”区域。

4、打开应用程序target的“Build Phases”设置标签,点击“+”按钮,选择“New Run Script Phase”,在填写脚本区域写入“/usr/local/bin/carthage copy-frameworks”,在“Input Files”区域添加framework路径,例如:$(SRCROOT)/Carthage/Build/iOS/Box.framework。该步骤保证framework bitcode以及DSYM文件正确拷贝。

这样集成framework的工作就完成了。

关于Cartfile 

目前Carthage只支持Github或其他git项目,下面是关于Cartfile内容的例子:

# Require version 2.3.1 or later

github "ReactiveCocoa/ReactiveCocoa" >= 2.3.1

# Require version 1.x

github "Mantle/Mantle" ~> 1.0    # (1.0 or later, but less than 2.0)

# Require exactly version 0.4.1

github "jspahrsummers/libextobjc" == 0.4.1

# Use the latest version

github "jspahrsummers/xcconfigs"

# Use the branch

github "jspahrsummers/xcconfigs" "branch"

# Use a project from GitHub Enterprise

github "https://enterprise.local/ghe/desktop/git-error-translations"

# Use a project from any arbitrary server, on the "development" branch

git "https://enterprise.local/desktop/git-error-translations2.git" "development"

# Use a local project

git "file:///directory/to/project" “branch"

关于使用Carthage的介绍就到这里了。

© 著作权归作者所有

王石头
粉丝 8
博文 24
码字总数 26001
作品 0
石景山
程序员
私信 提问
如何使用Carthage管理iOS依赖库

前言 很多ios开发者大概对CocoaPods并不陌生,我们几乎已经习惯了在pod文件中添加一行即可将一个库导入到自己的工程中,不得不说,在ios开发的历史中CocoaPods功不可没,即便在未来它也会在开...

秦无炎
2016/12/22
27
0
Cocoa包管理器之Carthage详解及CocoaPods中心化+Carthage的二进制化

上篇博客详细的聊了CocoaPods的相关内容,今天我们就来介绍另一个Cocoa的包管理器Carthage。在上家公司用Swift开发工程时,用的就是Carthage。Carthage诞生于14年11月份,是用Swift语言开发的...

青玉伏案
2018/07/17
0
0
iOS开发——Carthage:去中心化的Cocoa依赖管理器

如果说 CocoaPods 像一个航母, 一应俱全, 坚实稳固. 那么 Carthage 就像一艘巡洋舰, 机动灵活, 攻击迅速. 1 Why to use Carthage? 2 CocoaPods是已存在很长时间的Cocoa依赖管理器, 那么为什么...

-Man
2016/08/08
45
0
Carthage入门篇-安装和使用

在iOS开发过程中,用到最多的三方库管理工具也许是Cocoapods。Cocoapods会自动为你创建一个workspace,然后自动将你要用到的三方库集成到Project中,而整个过程,你只需要对Podfile进行修改,...

zhanggui
2018/09/20
0
0
Appium环境准备及IOS真机测试

本文主要内容:Appium-Server、Appium-Desktop的具体搭建及使用步骤。以及IOS真机测试需要特别注意的方面。 Appium-Server 1、使用node.js编写 2、命令行版本通过npm安装 3、官网提供GUI版本...

一剑围城
2017/09/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android面试常客之Handler全解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/fnhfire_7030/article/details/79518819 前言:又到了一年...

shzwork
32分钟前
4
0
position sticky 定位

本文转载于:专业的前端网站➫position sticky 定位 1、兼容性 https://caniuse.com/#search=sticky chrome、ios和firefox兼容性良好。 2、使用场景 sticky:粘性。粘性布局。 在屏幕范围内时...

前端老手
39分钟前
4
0
CentOS 7 yum 安装 PHP7.3 教程

参考:https://www.mf8.biz/centos-rhel-install-php7-3/ 1、首先安装 EPEL 源: yum install epel-release 安装 REMI 源: yum install http://rpms.remirepo.net/enterprise/remi-release......

dragon_tech
54分钟前
4
0
Linux物理网卡聚合及桥接

Linux内部实现的bridge可以把一台机器上的多张网卡桥接起来,从而把自己作为一台交换机。同时,LInux bridge还支持虚拟端口,即桥接的不一定都是物理网卡接口,还可以是虚拟接口。目前主要表...

xiangyunyan
55分钟前
4
0
一起来学Java8(一)——函数式编程

在这篇文章中,我们将了解到在Java8下如何进行函数式编程。 函数式编程 所谓的函数式编程就是把函数名字当做值进行传递,然后接收方拿到这个函数名进行调用。 首先来看下JavaScript如何进行函...

猿敲月下码
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部