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. 【目录】 hadoop2.6.0

    hadoop2.6.0 安装+例子运行 数据丢失问题解决 通过代码运行程序流程 利用Hadoop的 Java API 利用JAVA API 实现数据上传

  2. .NET 事件

    事件概述                                                                 在发生其他类或对象关注的事情时,类或对象可通过事件通知它们.发 ...

  3. Jquery 实现点击tab切换页签

    1.我将这个封装城了插件代码如下,你可以独立到一个js文件,然后页面引用下这个js文件: (function ($) { $.fn.extend({ qmTabs: function () { var ...

  4. C# 获取时间差状态

    /// <summary> /// 根据时间获取时间状态 /// </summary> /// <param name="dt"></pa ...

  5. MyBatis学习(三)

    输入和输出映射 resultType 指定输出结果的类型(pojo.简单类型.hashmap等),将sql查询结果映射为java对象 . 注意:sql查询的列名要和resultType指定pojo的属 ...

  6. 日期与时间戳相互转化(js)

    function datetime_to_unix(datetime){     var tmp_datetime = datetime.replace(/:/g,'-');     tmp_date ...

  7. 第六届福建省大学生程序设计竞赛(FZU2213—FZU2221)

    from:piaocoder Common Tangents(两圆之间的公公切线) 题目链接: http://acm.fzu.edu.cn/problem.php?pid=2213 解题思路: 告诉你 ...

  8. 移动WEB前端开发资源整合

    meta篇 1.视窗宽度 <meta name="viewport" content="width=device-width,initial-scale=1.0,m ...

  9. 宿主机ping不通虚拟机cenos7

    参考网址1:http://zhidao.baidu.com/link?url=2v3NXGyzPT-XTYwon8PesZLnMg02Ako6nDub3vJiJt4miSmkOA-04xLUqfu9s ...

  10. SwipeRefreshLayout下拉刷新简单用例

    自己的下拉刷新组件 下拉刷新并自动添加数据 MainActivity package com.shaoxin.myswiperefreshlayout; import android.graphics ...