昨天搞了一下pod的安装 因为之前我都是在使用pod来进行第三方库的管理 但是拿到项目之后 竟发现这个前辈是用Carthage

说真的在这之前我从来没有用过这个玩意
因为我感觉用POD已经很好了啊 很方便啊
之后就是上网查资料 看看这个Carthage到底是个什么鬼东西

简介

轻耦合,更灵活;使用 xcodebuild 工具来编译依赖项目成二进制 Framework,再引入到项目中去。

Carthage 是由 Swift 语言写的,只支持动态框架,只支持 iOS8+。

Carthage 的大致工作流程如下:

  1. 创建一个 Cartfile 文件,写好你要哪些依赖库
  2. 执行 carthage update 命令拉取源代码并编译为 Framework
  3. 把编译后的 .framework 拖到项目中去即可 (官方是这么说的,不过更好的办法是把 Carthage 编译的 Framework 路径加入到 Build Setting 中的 Framework Search Path,详情见后文)
看完简介  我们再说正事 啊哈哈 

安装Carthage只需要打开终端,输入如下指令:

$ brew update

$ brew install carthage

如果你不喜欢使用终端,也可以从网站https://github.com/Carthage/Carthage/releases下载最新版的Carthage.pkg来更新。
当你安装好Carthage后,在终端执行
$ carthage version 即可看到当前的carthage版本, 当写这篇文章的时候,Carthage的版本为0.11.0 。
现在,你已经安装好了Carthage,接下来就是在你的项目中使用carthage了: 1、通过终端进入到项目所在的文件夹:
$ cd ~/Path/Project
后面的路径替换成你的项目所在的路径即可
2、创建一个空的carthage文件:
$ touch Cartfile
此时你的项目文件夹里会创建一个名为Cartfile的文件。
3、使用xcode打开cartfile文件
$ open -a Xcode Cartfile
并在打开的文件中加入以下内容 github "Alamofire/Alamofire" ~> 3.0 github "SwiftyJSON/SwiftyJSON" 版本的含义 ~> 3.0 表示使用版本3.0以上但是低于4.0的最新版本,如3.5, 3.9 == 3.0 表示使用3.0版本 >= 3.0表示使用3.0或更高的版本 如果你没有指明版本号,则会自动使用最新的版本 4、保存并关闭cart file文件,在终端执行命令
$ carthage update --platform iOS
carthage会为你下载和编译所需要的第三方库,当命令执行完毕,在你的项目文件夹中会创建一个名为Carthage的文件夹
在 ~/Carthage/Build/iOS里会出现xxx.framework文件已经为你创建好了。
当然,你也可以通过命令行进入此文件夹:
$ open Carthage 5、现在打开你的项目,点击project,选择target, 再选择上方的General,将需要的framework文件拖到 Linked frameworks and Binaries内 6、点击Build Phrase tab选项,添加相应的run script 此时,你已经可以使用导入的第三方库了
如需要使用Alamofire和SwiftyJSON,就在相应的类前添加 import Alamofire import SwiftyJSON 即可。
现在,就开始享受Carthage吧。

Cocoa 新的依赖管理工具:Carthage的更多相关文章

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

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

  2. Composer : php依赖管理工具

    原始时代 我记得在当时用php的时候还没有composer,只有个pear,但是不好用呀,还不如直接在互联网上到处复制代码了,更快更不容易出错,当时也没有github这么好的社区工具了 总结如下 代码 ...

  3. composer php依赖管理工具

    #composer是什么 Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们. composer出现之前我们php项目依赖管理大部分都是手动 ...

  4. Go 包依赖管理工具 —— govendor

    govendor 是一个基于 vendor 机制实现的 Go 包依赖管理命令行工具.与原生 vendor 无侵入性融合,也支持从其他依赖管理工具迁移,可以很方便的实现同一个包在不同项目中不同版本.以及 ...

  5. 有用PHP依赖管理工具Composer新手教程

    PHP依赖管理工具Composer新手教程 Composer 是 PHP 的一个依赖管理工具.它同意你申明项目所依赖的代码库,它会在你的项目中为你安装他们. 依赖管理 Composer 不是一个包管理 ...

  6. golang多个项目时如何配置GOPATH,使用gb包依赖管理工具,不同项目配置不同的GOPATH的

    golang多个项目时如何配置GOPATH,使用gb包依赖管理工具,不同项目配置不同的GOPATH的 1:执行脚本setGoPath.sh#!/bin/bashif [[ $GOPATH =~ .*$ ...

  7. IOS开发依赖管理工具CocoaPods

    CocoaPods IOS开发依赖管理工具 CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It ...

  8. PHP依赖管理工具Composer入门

    作者: JeremyWei | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址: http://weizhifeng.net/manage-php-dependency-wi ...

  9. Ubuntu 和 Redhat / Fedora 服务管理命令对比表(附Fedora16新的服务管理工具systemctl )

    以 apache/httpd 服务作为例子 任务 Red Hat / Fedora Ubuntu Ubuntu (with sysv-rc-conf or sysvconfig) 立即启动/停止某服务 ...

随机推荐

  1. IE6里面display:inlineblock使得块元素成行排列,没用

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. over-float清除浮动

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. Qt5:Qt中屏幕或窗口截图功能的实现

    要想在Qt中实现屏幕或窗口截图功能 ,通常有两种方法: 1  -- 使用 QPixmap 类 2  -- 使用 QScreen类 然而虽然俩两种方法用到的类不相同,但是调用到的类成员函数的函数名称和参 ...

  4. PLSQL开发笔记和小结

    *****************************************  PLSQL基本结构*****************************************基本数据类型变 ...

  5. Myeclipse添加struts2支持后取消操作

    Myeclipse添加struts包后, 想重新加载的方法: 1. myelicpse,右键项目,选close project 2. 找到项目所在目录, 打开.classpath删除带有struts2 ...

  6. mtp

    http://www.android.gs/mount-google-nexus-4-mtp-sd-card-on-ubuntu-and-other-linux-computers/ https:// ...

  7. CodeForces 590B Chip 'n Dale Rescue Rangers

    这题可以o(1)推出公式,也可以二分答案+验证. #include<iostream> #include<cstring> #include<cmath> #inc ...

  8. Mysql基于GTID主从复制

    Mysql5.6基于GTID全局事务的复制 什么是GTID?   GTID(Global Transaction Identifiers)是全局事务标识 当使用GTIDS时,在主上提交的每一个事务都会 ...

  9. myEclipse 8.5下SVN环境的搭建

    myEclipse 8.5下SVN环境的搭建 在应用myEclips 8.5做项目时,svn会成为团队项目的一个非常好的工具,苦苦在网上寻求了一下午,终于整合好了这个环境,在这里简单介绍下,希望能为刚 ...

  10. (简单) POJ 3159 Candies,Dijkstra+差分约束。

    Description During the kindergarten days, flymouse was the monitor of his class. Occasionally the he ...