01 Carthage简单介绍

主页:https://github.com/Carthage/Carthage.git

作者:Justin Spahr-Summers等

版本:0.18

目标:用最简单的方式来管理Cocoa第三方框架

性质:第三方框架管理工具(类似于cocoapods) Carthage为用户管理第三方框架和依赖,但不会自动修改项目文件和生成配置,把对项目结构和设置的控制权交给用户。

原理:自动将第三方框架编程为Dynamic framework(动态库)

限制:仅支持iOS8+。它只支持框架,所以不能用来针对iOS8以前的系统版本进行开发

02 Carthage和cocoapods

1)使用了CocoaPods的项目是高度集成的,而Carthage更灵活强调尽可能将任务委托给Xcode和Git。

"CocoaPods在使用中会自动创建和更新workspace、依赖和Pod项目并进行整合;

"Carthage在使用中不需要创建和集成相应的workspace和project,只需要依赖打包好的framework文件即可。

"总结一下,CocoaPods的方法更容易使用,而Carthage更灵活且对项目没有侵入性。

2)CocoaPods相对来说功能要比Carthage多很多,因此也更复杂,而CocoaPods配置简单项目干净。

3)CocoaPods有一个中心仓库,而Carthage是去中心化的,没有中心服务器也就避免了可能因中心节点错误而带来的失败,即Carthage每次配置和更新环境,只会去更新具体的库,时间更快。

4)想让自己的第三方库支持Carthage比让其支持CocoaPods更加的简单。

5)Carthage的不足

① 库依然不如 CocoaPods 丰富

② 仅支持iOS8+

③ 工具尚且不如cocoapods晚上(已经发布了app)

④ 在使用第三方库的过程中无法查看源码

03 Carthage的安装和使用

1)直接下载Carthage.pkg安装包,安装运行

2)如果使用的XCode为7.0+版本,那么也可以使用下面的方法来安装

〇 安装homebrew

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

① 升级brew

$ brew update

② 使用brew来安装

$ brew install Carthage

   

③ 查看版本

   $ Carthage version

04 Carthage的使用

1)先进入到项目所在文件夹

 $ cd 项目路径

2)创建一个空的Carthage文件

$ touch Cartfile

3)编辑cartfile文件,例如要安装AFN框架

git "https://github.com/AFNetworking/AFNetworking.git"

4)保存并关闭cartfile文件,使用cartfile安装框架

$ Carthage update --platform iOS

 5)打开Carthage 查看生产的文件目录

$ open Carthage

  文件目录说明:

"|| Carthage/Checkouts目录:从github获取的源代码

"|| Carthage/Build目录:编译出来的Framework二进制代码库

6) 配置项目

打开项目,点击Target -> Build Phases -> Link Library with Libraries选择Carthage/Build目录中要导入的framework

7)添加编译的脚本(该脚本文件保证在提交归档时会对相关文件和dSYMs进行复制)

(1)点击Build Phases,点击“+” ->  New Run Script Phase

    

(2)添加添加脚本   /usr/local/bin/Carthage copy-frameworks

(3)添加"Input Files"  $(SRCROOT)/Carthage/Build/iOS/AFNetworking.framework

    

8)在项目中使用第三方库 #import <AFNetworking/AFNetworking.h>

其它:

卸载Carthage:$ brew uninstall Carthage

更新第三方框架:

更新多个框架:修改Cartfile文件,并重新执行 $ Carthage update 

更新某个框架:$ Carthage update 具体的框架名称

05 Carthage的工作过程说明

① 创建一个Cartfile文件,在该文件中列出您想使用的框架

② 运行Carthage,获取并编译Cartfile文件中列出的框架

③ 把框架的二进制文件配置到项目中

攻城利器 —— Carthage简单介绍的更多相关文章

  1. Fiddler无所不能——之测试开发攻城狮必备利器

    Fiddler无所不能——之测试开发攻城狮必备利器 1.模拟真实网络环境4g网.3g网络.2g网络.弱网.请求超时 开启弱网Rules——Performance——勾选Simulate Modem S ...

  2. Android优秀资源整理合集(论菜鸟到高级攻城狮)

    转载请注明转自:http://blog.csdn.net/u011176685/article/details/51434702 csdn文章:Android优秀资源整理合集(论菜鸟到高级攻城狮) 时 ...

  3. JBPM4之decision节点:3、程序猿|菜鸟|攻城狮|牛人

    JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门—— ...

  4. WeX5的简单介绍及UI的简单讲解

    WeX5的简单介绍及UI的简单讲解 (2016-01-13 14:49:05) 标签: it 分类: WeX5的初步自学 一.WeX5的简单讲解 1.WeX5是前端快速开发框架,可开发跨端运行应用.是 ...

  5. 安全攻城狮研发技能栈V1.0,附详细点评~

    2015-12-21 正宗好PT 正宗好PT 今天公司年会,又木有抽到奖,求安慰/(ㄒoㄒ)/~~ 言归正传,我曾经在推特发过一个Skill CheatSheet,被转发和点赞了几百次,我又更新了一下 ...

  6. Android发展简单介绍

    Android一词的本义指“机器人”,同一时候也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成,号称是首个为移动 ...

  7. SQL Server授权购买简单介绍

    SQL Server授权购买简单介绍 之前有同事问我,使用盗版序列号的SQL Server到底有没有性能限制,之前本人一直没有深入研究过,后来经过一番资料搜集和查证,汇总成这篇文章 微软的SQL Se ...

  8. 浏览器中 F12 功能的简单介绍

    chrome浏览器中 F12 功能的简单介绍 由于F12是前端开发人员的利器,所以我自己也在不断摸索中,查看一些博客和资料后,自己总结了一下来帮助自己理解和记忆,也希望能帮到有需要的小伙伴,嘿嘿! 首 ...

  9. [转]chrome浏览器中 F12 功能的简单介绍

    本文转自:https://www.cnblogs.com/zhuzhubaoya/p/9758648.html chrome浏览器中 F12 功能的简单介绍 由于F12是前端开发人员的利器,所以我自己 ...

随机推荐

  1. SQL Server 存储过程自定义生成ID号

    * FROM sys.tables WHERE name=N'EmployeeNo_Identity') DROP TABLE EmployeeNo_Identity GO CREATE TABLE ...

  2. Ubuntu遇到Please ensure that adb is correctly located at '...adb.exe' and can be executed 问题解决方法

    上次我们在SDK更新的到最新的Android L版本之后,我发现我的ADT和android指定的版本不对应,我的ADT是22版本的,android L需要23版本以上的,版本不对应的话就无法加载这个S ...

  3. python多进程

    一.多进程池 from multiprocessing import Pool import time pool = Pool(processes=3) result=[];lr=range(t);a ...

  4. Observer设计模式中-委托事件-应用在消息在窗体上显示

    Observer设计模式:监视者模式.在类中的方法中处理的结果或者消息通过事件委托 的方式发送给主窗体. 因为在其它类中直接访问主窗体类,显示内容是不能直接调用控件赋值的,当然也有别的类似查阅控件名, ...

  5. ubuntu下完全安装mcrypt

    源文章: ubuntu下安装mcrypt 1.首先要下载三个软件 0libmcrypt-2.5.8.tar.gz 下载地址:http://sourceforge.net/project/showfil ...

  6. 编写出色的GNU/Linux程序

    http://advancedlinuxprogramming.com提供了本书电子版的免费下载. 1 与执行环境交互 关于参数 C语言程序的main()函数使用两个参数和执行环境交互--(int)a ...

  7. ActionScript语言函数重载

    更新:你见过JavaScript支持重载吗,规范就是这么定义的.如果不是研究Java和Flex对象的Serialization,我也不会注意它. 距离写这篇文章已有8年了,时光匆匆啊,今天整理资料时看 ...

  8. [f]动态判断js加载完成

    在正常的加载过程中,js文件的加载是同步的,也就是说在js加载的过程中,浏览器会阻塞接下来的内容的解析.这时候,动态加载便显得尤为重要了,由于它是异步加载,因此,它可以在后台自动下载,并不会妨碍其它内 ...

  9. JBOSS通过Apache负载均衡方法二:使用mod_cluster

    本文介绍使用mod_cluster组件通过apache来对JBOSS做负载均衡.基本环境为:linux RH6.3 64bit下使用jboss-eap-6.0和mod-cluster 1.2.6(集成 ...

  10. JAVA操作Mysql数据库

    String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://127.0.0.1:3306/ph ...