攻城利器 —— Carthage简单介绍

简介: 01 Carthage简单介绍     主页:https://github.com/Carthage/Carthage.git     作者:Justin Spahr-Summers等     版本:0.18     目标:用最简单的方式来管理Cocoa第三方框架     性质:第三方框架管理工具(类似于cocoapods) 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文件中列出的框架

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

目录
相关文章
|
8月前
|
弹性计算 Java 程序员
推荐程序员必知的四大神级学习网站
今天给大家整理一些小编经常学习和访问的学习网站,供大家参考学习。
|
设计模式 SpringCloudAlibaba 负载均衡
每天打卡,跟冰河肝这些项目,技术能力嗖嗖往上提升
前几天,就有不少小伙伴问我,冰河,你星球有哪些项目呢?我想肝你星球的项目,可以吗?今天,我就给大家简单聊聊我星球里有哪些系统性的项目吧。其实,每一个项目的价值都会远超门票。
168 0
每天打卡,跟冰河肝这些项目,技术能力嗖嗖往上提升
|
2月前
|
设计模式 程序员
从零到一:我的编程之旅与技术感悟
【10月更文挑战第22天】这是一篇关于个人编程学习经历和技术感悟的文章。文章以通俗易懂的语言,讲述了作者从一个编程新手,通过不断学习和实践,逐渐成长为一名熟练的程序员的过程。文章不仅分享了学习编程的方法和技巧,还深入探讨了编程的本质和意义,对于想要学习编程的人来说,具有很好的启发和指导作用。
44 2
|
3月前
|
前端开发 API 开发者
🥇前端宝藏:多项目掌握技能的冒险之旅🏆
在前端开发的学习旅程中,实践是提升技能的关键。本文介绍了多个前端项目,包括计算器、天气应用、经典游戏等,涵盖了从React到Svelte的各种技术栈。每个项目都附有在线演示和源代码,旨在帮助读者深入理解实现细节,激励更多人参与实际项目开发。通过这些项目,读者可以将理论知识转化为实践,拓展职业机会。
28 0
|
5月前
|
前端开发 搜索推荐 程序员
发现一个程序员最强外设,助你高效开发早日摸鱼!
【8月更文挑战第24天】日常写bug中,副屏是我们每个程序员必备的一个工具,我们都希望拥有一个强大好用的显示器。这篇文章我将介绍:如何将一块优秀的副屏与实际工作结合,发挥其最大价值,实现高效开发、快速摸鱼!
77 2
发现一个程序员最强外设,助你高效开发早日摸鱼!
|
4月前
|
缓存 监控 前端开发
前端性能优化实战:让你的网站快如闪电的十大秘籍
【9月更文挑战第3天】通过以上十大秘籍的实践,您可以显著提升网站的前端性能,让您的网站在竞争激烈的互联网环境中脱颖而出,为用户带来更加流畅和愉悦的体验。记住,前端性能优化是一个永无止境的过程,只有不断迭代和优化,才能保持网站的竞争力。
|
8月前
|
安全 Java Android开发
程序世界的奇幻旅程:从码农梦想家到JAVA开发实践者
程序世界的奇幻旅程:从码农梦想家到JAVA开发实践者
59 0
|
消息中间件 设计模式 Java
如何高效地阅读源码,我总结了18条心法,助你修炼神功
大家好,我是三友~~ 这篇文章我准备来聊一聊如何去阅读开源项目的源码。 在聊如何去阅读源码之前,先来简单说一下为什么要去阅读源码,大致可分为以下几点原因: - 最直接的原因,就是面试需要,面试喜欢问源码,读完源码才可以跟面试官battle - 提升自己的编程水平,学习编程思想和和代码技巧 - 熟悉技术实现细节,提高设计能力 - ...
如何高效地阅读源码,我总结了18条心法,助你修炼神功
|
运维 算法 架构师
又爆新作!阿里甩出架构师进阶必备神仙笔记,底层知识全梳理
据有关数据表明,目前Java程序员这个群体的数量不减反增,行业内的竞争也是越来越严重。在同一时间入行的人,经过一段时间的学习后,差距就会显示出来。其实出现这样的原因大多数都是因为学习的方向出了问题。大多数人学Java刚开始只是为了快速就业,但是在工作了之后却没有一个好的学习路线,那些其实很重要的东西只是因为工作上用不到从而忽略掉了,慢慢的才发现自己与别人之间已经存在很大差距了!
|
Java 应用服务中间件 容器