iOS项目中第三方开源库的工具有Cocoapods和Carthage,swift官方出了一个包管理工具SPM(Swift Package Manager)。

首先,大体讲一下Cocoapods和Carthage的区别:CocoaPods会直接创建和修改项目的workspace配置,创建的是高度集成的项目。Carthage不需要创建workspace,仅仅需要依赖打包好的framework文件即可。CocoaPods相对来说功能要比Carthage多很多,而Carthage的配置比较简单。

Swift 包依赖工具和 Carthage 工作原理类似,都是去中心化的包管理系统,它要求开发者提供依赖包的 Git 地址。不过目前SPM还没有在iOS项目上使用。下面讲一下写ios的swift项目过程中,如何使用Carthage。

1.Carthage安装卸载

1.1 安装Carthage,2种方法:

(1)可以在官网上下载Carthage对应版本的pkg文件,安装即可。比如下载0.11版本的Carthage包:下载pkg文件,安装carthage version 0.11版本。

(2)用brew安装:

brew update
brew install carthage

1.2 卸载Carthage:

brew uninstall carthage

2. 使用Carthage

2.1 创建Cartfile

在项目的根目录下,创建Cartfile:

vim Cartfile

2.2  编写Cartfile:写入要管理的第三方库,比如socket.io和ReactiveCocoa

github "socketio/socket.io-client-swift" ~> 6.0. # Or latest version
github "ReactiveCocoa/ReactiveCocoa"

2.3 运行Cartfile:

carthage build --platform iOS
carthage update --platform ios

运行成功后,会发现目录下多了一个Cartfile.resolved文件和Carthage的目录。在/Carthage/Build/iOS目录下就会看到对应的第三方库。

包管理工具Carthage使用的更多相关文章

  1. Carthage 包管理工具,另一种敏捷轻快的 iOS & MAC 开发体验 | SwiftCafe 咖啡时光

    说起 iOS 开发的包管理,大家就不由得会想起 CocoaPods, 它确实是一个强大的工具.但这次咱们来关注另外一个包管理工具 Carthage,如果说 CocoaPods 像一个航母,一应俱全,坚 ...

  2. Cocoa包管理器之Carthage详解及CocoaPods中心化+Carthage的二进制化

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

  3. Python黑帽编程1.3 Python运行时与包管理工具

    Python黑帽编程1.3  Python运行时与包管理工具 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...

  4. Node包管理工具

    Node包管理工具 只是简单的介绍一些工具的使用,有利于开发过程.除了介绍Node包管理工具,还介绍了前端打包工具,前端模块管理工具 Node包管理工具:    --npm    --cnpm    ...

  5. godep 包管理工具

    godep是解决包依赖的管理工具 安装 go get github.com/tools/godep 成功安装后,在GOPATH的bin目录下会有一个godep可执行的二进制文件,后面执行的命令都是用这 ...

  6. 【转载】Python的包管理工具Pip

    接触了Ruby,发现它有个包管理工具RubyGem很好用,并且有很完备的文档系统http://rdoc.info 发现Python下也有同样的工具,包括easy_install和Pip.不过,我没有细 ...

  7. Python的包管理工具Pip (zz )

    Python的包管理工具Pip 接触了Ruby,发现它有个包管理工具RubyGem很好用,并且有很完备的文档系统http://rdoc.info 发现Python下也有同样的工具,包括easy_ins ...

  8. python 包管理工具

    python 包管理工具 Python当前的包管理工具链是 easy_install/pip + distribute/setuptools + distutils,显得较为混乱. 而将来的工具链组合 ...

  9. Python 包管理工具解惑

    Python 包管理工具解惑 本文链接:http://zengrong.net/post/2169.htm python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到 ...

随机推荐

  1. ionic扩展插件

    1.ionic-timepicker 时间选择 https://github.com/rajeshwarpatlolla/ionic-timepicker   2.ionic-datepicker 日 ...

  2. mac 安装nginx

    首先准备工作,打开mac终端 1.安装brew  输入命令 curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar x ...

  3. string与wstring之间的转换

    #include <string>std::string ws2s(const std::wstring& ws){    std::string curLocale = setl ...

  4. Hotaru's problem(hdu 5371)

    题意:给出一个数字串,询问最长的子串,满足以下要求:将子串平均分为三部分,一三部分相等,一二部分对衬. /* 在manachar的基础上,枚举回文串的中心,再找第三部分. */ #include< ...

  5. Java基础之集合与泛型

    话不多说,直接上图 1.Collection集合小结 注意: 凡是使用哈希表保存对象的容器,保存的对象在容器中都是唯一的,唯一性是通过被保存对象的hashCode和equals方法共同确定: 凡是使用 ...

  6. LNMP平台搭建---PHP安装篇

    在前面三篇中,我们安装了Linux系统.Web服务器Nginx.MySQL数据库服务器,这篇就来将搭建动态网站的最后一步:PHP安装. Nginx服务器只能响应静态资源请求,对于动态资源请求就不行了, ...

  7. Google之Chromium浏览器源码学习——base公共通用库(二)

    上次提到Chromium浏览器中base公共通用库中的内存分配器allocator,其中用到了三方库tcmalloc.jemalloc:对于这两个内存分配器,个人建议,对于内存,最好是自己维护内存池: ...

  8. js特效2

    侧边栏简单版 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...

  9. C# 读取大型Xml文件

    这篇博客将介绍在C#中如何读取数据量很大的Xml文件.请看下面的Xml文件, <?xml version="1.0" encoding="utf-8"?& ...

  10. python 函数传递方式

    在python中方法传递的参数到底是值传递还是引用传递? 1. 首先需要知道python中变量的类型:Python的变量分为可变变量和不可变变量. 针对于不可变的类型比如string int def ...