攻城利器 —— 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文件中列出的框架

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

目录
相关文章
|
存储 算法 Python
【亮剑】探讨了Python中查找两个字符串差异位置的方法
【4月更文挑战第30天】本文探讨了Python中查找两个字符串差异位置的方法。首先,通过内置函数和基本字符串操作,可以逐个字符比较找到第一个不同位置。其次,利用`difflib`库的`SequenceMatcher`能获取更详细的差异信息。最后,通过实现Levenshtein距离算法,可以计算字符串间的最小编辑距离。根据需求选择合适的方法,能提升代码效率和可读性。
721 0
|
自然语言处理 搜索推荐 机器人
langchain 简介
langchain 简介
1253 1
|
存储 JSON 数据安全/隐私保护
Flask Python:如何获取不同请求方式的参数
Flask Python:如何获取不同请求方式的参数
1218 0
|
API Python
Python之List数据结构常见API
Python之List数据结构常见API
427 0
如何阻止 iCloud 同步某个文件夹?
如何阻止 iCloud 同步某个文件夹?
644 0
如何阻止 iCloud 同步某个文件夹?
|
编译器 iOS开发
iOS-底层原理 23:KVO 底层原理
iOS-底层原理 23:KVO 底层原理
491 0
iOS-底层原理 23:KVO 底层原理
|
14天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23496 11
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
2天前
|
人工智能 BI 持续交付
Claude Code 深度适配 DeepSeek V4-Pro 实测:全场景通关与真实体验报告
在 AI 编程工具日趋主流的今天,Claude Code 凭借强大的任务执行、工具调用与工程化能力,成为开发者与自动化运维的核心效率工具。但随着原生模型账号稳定性问题频发,寻找一套兼容、稳定、能力在线的替代方案变得尤为重要。DeepSeek V4-Pro 作为新一代高性能大模型,提供了完整兼容 Claude 协议的 API 接口,只需简单配置即可无缝驱动 Claude Code,且在任务执行、工具调用、复杂流程处理上表现极为稳定。
940 0
|
7天前
|
人工智能 缓存 Shell
Claude Code 全攻略:命令大全 + 实战工作流(完整版)
Claude Code 是一款运行在终端环境下的 AI 编码助手,能够直接在项目目录中理解代码结构、编辑文件、执行命令、执行开发计划,并支持持久化记忆、上下文压缩、后台任务、多模型切换等专业能力。对于日常开发、项目维护、快速重构、代码审查等场景,它可以大幅减少手动操作、提升编码效率。本文从常用命令、界面模式、核心指令、记忆机制、图片处理、进阶工作流等维度完整说明,帮助开发者快速上手并稳定使用。
1823 3