攻城利器 —— Carthage简单介绍
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简单介绍的更多相关文章
- Fiddler无所不能——之测试开发攻城狮必备利器
Fiddler无所不能——之测试开发攻城狮必备利器 1.模拟真实网络环境4g网.3g网络.2g网络.弱网.请求超时 开启弱网Rules——Performance——勾选Simulate Modem S ...
- Android优秀资源整理合集(论菜鸟到高级攻城狮)
转载请注明转自:http://blog.csdn.net/u011176685/article/details/51434702 csdn文章:Android优秀资源整理合集(论菜鸟到高级攻城狮) 时 ...
- JBPM4之decision节点:3、程序猿|菜鸟|攻城狮|牛人
JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门—— ...
- WeX5的简单介绍及UI的简单讲解
WeX5的简单介绍及UI的简单讲解 (2016-01-13 14:49:05) 标签: it 分类: WeX5的初步自学 一.WeX5的简单讲解 1.WeX5是前端快速开发框架,可开发跨端运行应用.是 ...
- 安全攻城狮研发技能栈V1.0,附详细点评~
2015-12-21 正宗好PT 正宗好PT 今天公司年会,又木有抽到奖,求安慰/(ㄒoㄒ)/~~ 言归正传,我曾经在推特发过一个Skill CheatSheet,被转发和点赞了几百次,我又更新了一下 ...
- Android发展简单介绍
Android一词的本义指“机器人”,同一时候也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成,号称是首个为移动 ...
- SQL Server授权购买简单介绍
SQL Server授权购买简单介绍 之前有同事问我,使用盗版序列号的SQL Server到底有没有性能限制,之前本人一直没有深入研究过,后来经过一番资料搜集和查证,汇总成这篇文章 微软的SQL Se ...
- 浏览器中 F12 功能的简单介绍
chrome浏览器中 F12 功能的简单介绍 由于F12是前端开发人员的利器,所以我自己也在不断摸索中,查看一些博客和资料后,自己总结了一下来帮助自己理解和记忆,也希望能帮到有需要的小伙伴,嘿嘿! 首 ...
- [转]chrome浏览器中 F12 功能的简单介绍
本文转自:https://www.cnblogs.com/zhuzhubaoya/p/9758648.html chrome浏览器中 F12 功能的简单介绍 由于F12是前端开发人员的利器,所以我自己 ...
随机推荐
- Daily Scrum 12.11
今日完成任务: 解决了类型同时存在于两个自动生成的DLL中导致编译不通过的问题:修复了主页标签显示的BUG:修复异常,网站可以在服务器端正常运行. 明日任务: 黎柱金 解决上传文档时建立文档和标签联系 ...
- Java泛型总结(转)
本文是转载,原文链接:http://www.cnblogs.com/lwbqqyumidi/p/3837629.html 一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: ...
- python 迭代器和生成器
1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退)2.可迭代对象:实现了迭代器协议的 ...
- oracle 游标使用大全
转:http://www.cnblogs.com/fjfzhkb/archive/2007/09/12/891031.html oracle的游标和例子! 游标-----内存中的一块区域,存放的是se ...
- Mac mysql修改密码
在网上看了很多的办法,其实解决办法都对,只是没有说明白: 1,首先启动mysql服务 2,mysqladmin -uroot -p 'newpassword' 此时需要输入登陆密码(数据库的密码,刚安 ...
- hdu 5102 树上前k短路径长度和
http://acm.hdu.edu.cn/showproblem.php?pid=5102 给一棵树,求出所有节点的距离中前k小的路径长度和 由于路径长度的定义为两点之间的边的个数,所有遍历1~n- ...
- 从0开始学Swift笔记整理(五)
这是跟在上一篇博文后续内容: --Core Foundation框架 Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.虽然在Sw ...
- MySQL prepare 原理
Prepare的好处 Prepare SQL产生的原因.首先从mysql服务器执行sql的过程开始讲起,SQL执行过程包括以下阶段 词法分析->语法分析->语义分析->执行计划优化 ...
- nginx lua整合安装
安装lua JIT 下载 wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz 解压: tar zxvf LuaJIT-2.0.4.tar.gz 进入 ...
- Asp.Net Web API 2第十六课——Parameter Binding in ASP.NET Web API(参数绑定)
导航 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html. 本文主要来讲解以下内容: ...