本人从事 iOS 开发已有5年多,用 swift 开发也有一年多的时间了,此前一直利用 cocopods 管理三方框架和依赖,最近了解到 Carthage 这个工具,本着学习的态度对这工具进行了了解.

官方地址: https://github.com/Carthage/Carthage

Carthage 简介

  • Carthage 类似于 CocoaPods,为用户管理第三方框架和依赖,但不会自动修改项目文件和生成配置
  • Carthage 是去中心化的依赖管理工具,安装依赖时不需要去中心仓库获取 CocoaPods 所有依赖的索引,节省时间
  • 对项目无侵入性,Carthage 设计上也比较简单,利用的都是 Xcode 自身的功能,开发者在创建依赖时,相比 CocoaPods 也简单许多
  • Carthage 管理的依赖只需编译一次,项目干净编译时,不会再去重新编译依赖,节省时间
  • 自动将第三方框架编程为 Dynamic framework( 动态库 )
    与 CocoaPods 无缝集成,一个项目能同时拥有 CocoaPods 和 Carthage
  • 缺点:
  • 仅支持 iOS8 +
  • 它只支持框架,所以不能用来针对 iOS 8 以前的系统版本进行开发
    支持的 Carthage 安装的第三方框架和依赖不如 CocoaPods 丰富
  • 无法在 Xcode 里定位到源码
  • 安装包的大小比用CocoaPods安装的包大

安装

使用 Homebrew 安装 Carthage.

安装 Homebrew

  • Install Homebrew:

  • 获取 Homebrew 最新版本
    $ brew update

  • Homebrew 常用命令

    • 搜索
      $ brew search <packageName>
    • 安装
      $ brew install <packageName>
    • 卸载
      $ brew uninstall <packageName>
    • 查看已安装包列表
      $ brew list
    • 查看包信息
      $ brew info <packageName>
    • 查看Homebrew版本
      $ brew -v

安装 Cartgage

  • 安装
    $ brew install carthage
  • 查看 Cartgage 版本
    $ carthage version
  • 更新 carthage 版本
    brew upgrade carthage
  • 删除carthage旧版本
    brew cleanup carthage

使用 Cartgage 安装依赖

  • 进入项目所在路径
    $ cd ~/路径/项目文件夹
  • 创建空的 Carthage 文件 Cartfile
    $ touch Cartfile
  • 使用 Xcode 打开 Cartfile 文件
    $ open -a Xcode Cartfile
  • 编辑 Carfile 文件(以Alamofire为例)
    github "Alamofire/Alamofire" == 4.4.0
  • 执行更新命令,获取类库
    $ carthage update --platform iOS
  • 更新完成,检查目录结构
    更新完成后项目根路径会多出两个文件(Cartfile.resolved,Cartfile)和一个文件夹(Carthage), Carthage下又有两个文件夹(Checkouts 和 Build), Checkouts 从github获取的源代码, Build 编译出来的Framework二进制代码库.

添加 Frameworks 到项目中

  • 点击’项目名’ --> ‘TARGETS’ --> ‘General’, 在最下边找到’Linked Framework and Libraries’.
  • 点击’+’ --> ‘Add Other …’, 选择’Carthage/Build/iOS/Alamofire.framework’,点击 ‘Open’ 导入.
  • 选择菜单选项 ‘Build Phases’ --> 点击 ‘+’ --> ‘New Run Script Phase’, 添加以下命令:
    /usr/local/bin/carthage copy-frameworks
  • 点击 ‘Input Files’ 下的 ‘+’,为每个 Framework 添加访问路径:
    $(SRCROOT)/Carthage/Build/iOS/Alamofire.framework
  • 在项目中 import 所需包就可以使用了.
    import Alamofire

Carthage 安装以及初步实用相关推荐

  1. Docker Compose 简介、安装、初步体验

    [Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...

  2. EVC4 安装与初步使用

    EVC4 安装与初步使用 EVC 4下载 安装序列号:TRT7H-KD36T-FRH8D-6QH8P-VFJHQ http://download.microsoft.com/download/c/3/ ...

  3. Lemur的安装于初步使用

    November 23 Lemur的安装于初步使用 参考文档: Installing and Running Lemur(Version 4.7) 偶要补充几句: 1.windows 环境下,安装之后 ...

  4. 禅道的安装及初步使用(一)

    禅道的安装 1. 安装包下载 禅道官网地址:https://www.zentao.net/index.html 注:本次测试使用的版本为专业版8.9.4,其他版本可自行尝试.专业版,企业版都可免费试用 ...

  5. 图数据库JanusGraph介绍及使用(三):安装与初步使用

    图数据库JanusGraph介绍及使用(三):安装与初步使用 作者:家辉,日期:2018-07-05 CSDN博客: http://blog.csdn.net/gobitan 说明:这是图数据库Jan ...

  6. g2o的安装及初步使用

    声明:本博客仅供个人学习使用.转载自  Jasmine_shine g2o的安装及初步使用  运行环境:ubuntu12.04 + g2o  个人原创,转载请注明来自Jasmine_shine的专栏: ...

  7. spark1.3.0__for_hadoop2.4.1编译、安装与初步测试

    文章来源:http://blog.csdn.net/javastart/article/details/44558997 spark1.3.0__for_hadoop2.4.1编译.安装与初步测试 分 ...

  8. Django 学习(一)Django安装以及初步使用

    刚入门学习Django,目的是希望建立一个属于自己的页面.从零开始,持续学习- 首先要安装好Python----最好安装现流行的Python3.X版本 Python安装好后,安装Django Djan ...

  9. 图片文字识别(一):tesseract-ocr-4.00的安装与初步进行图片文字识别

    简介: tesseract-ocr可以对图像文字进行识别,为图文转换的工作时省去了大量时间.我们还可以通过不断的训练字库,使图像转换文本的能力不断增强,也可以调试模型使图像文字进行程序的识别率更高, ...

最新文章

  1. 移动磁盘格式化了的资料寻回方法
  2. 理解Hinted Handoff
  3. RabbitMQ 6种工作模式
  4. 关于jq+easy-ui 中上传文件所遇到的问题
  5. 2017年12月英语四级翻译预测
  6. Hive体系结构(三)元数据库与基本操作
  7. 职场上个人的核心技术_职场上的情绪管理
  8. 设计模式---简单工厂设计模式
  9. redis超时原因排查
  10. JavaScript十六进制、八进制、二进制与十进制互转
  11. 后面冒号_Python 数组中的冒号使用
  12. linux shell eval,【shell】bash shell 中 set 和 eval 命令的使用
  13. 安卓文件操作全解:内部文件、公共文件、私有文件、app静态文件
  14. What is the !! (not not) operator in JavaScript?
  15. matlab创建wps服务器,wps设置云服务器地址(wps放到服务器)
  16. 使用DTW算法对上证50成分股走势进行聚类分析
  17. 按键,触摸屏流程分析
  18. STM32+LTC6804/LTC6811采集电压温度电流/BMS储能采集板
  19. 华科计算机学院硕士武汉理工推免,学霸宿舍升级版!这个学院5个宿舍20名成员集体保研...
  20. 计算机知识的黑板报图片大全,学习黑板报精选图片欣赏

热门文章

  1. 基于QML的图片浏览器
  2. 劈尖干涉公式_劈尖干涉条纹的特征.PPT
  3. Fuel gauge---CW2015CHBD
  4. 关于移动端布局不兼容ipad和ipad pro 解决方法
  5. texturePacker 指令 .pvr.ccz 转 .png, 报错 : Not all sprites could be packed into the texture!
  6. SDUT 贪心商人小鑫
  7. Java中矩阵运算Array2DRowRealMatrix(math3的使用)
  8. 这个js转html,html转js的代码
  9. 单片机IO口应用-独立按键控制LED以及控制LED灯闪烁
  10. 解构微信(四):不靠QQ,品牌和推广要推翻重来