• 主页
  • 随笔
  • 技术笔记
  • 全部文章
标签 友链 关于我

  • 主页
  • 随笔
  • 技术笔记
  • 全部文章

Carthage包管理三方库

阅读数:次 2022-01-19
字数统计: 864字   |   阅读时长≈ 3分

carthage是一个和cocopods类似的第三方库管理工具。Carthage是一个新的第三方库管理工具,它轻耦合,使用很灵活,不会修改项目文件,使用xcodebuild工具来编译第三方库,Carthage只支持动态框架库。

carthage和cocopods区别

cocopods:

  • 中心化的三方库管理工具,需要开发者将代码提供到中心服务器。
  • 希望建立一个生态系统,可以更加方便的发现和集成第三方代码库,使用起来方便。
  • 自动建立和更新一个Xcode workspace,用来管理你的项目和所有依赖。
  • 需要配置podspec文件,包含了项目和第三方库的信息。

cocopods缺点:

  • 每次更新环境都需要连接到中心仓库,比较耗时
  • 繁琐的维护过程
  • 每次编译都会把所有第三方库都重新编译一次

Carthage:

  • 去中心化的,使用git托管第三方库,这样的好处在于可以替换三方库的来源。
  • 使用xcodebuild来编译出二进制库,剩下的集成工作完全交给开发人员。
  • 更加灵活并且对现有项目没有太多的侵略性
  • 希望变成一个去中心化的依赖管理系统,不提供中心化的项目列表,减少维护成本和单点失败的概率。
  • 并不使用类似的配置文件,第三方库的依赖关系是通过Xcode项目来配置的。
  • 在swift中使用很方便,它本身就是swift写的。

Carthage缺点:

  • 仅支持 iOS8 +
  • 它只支持Framework,所以不能用来针对 iOS 8 以前的系统版本进行开发
  • 支持的 Carthage 安装的第三方框架和依赖不如 CocoaPods 丰富
  • 无法在 Xcode 里定位到源码,只可以看到一个库的头文件
  • 安装包的大小比用CocoaPods安装的包大
  • 每次update时,需要从git仓库中重新拉取下载,比较耗时

Carthage安装

  • 使用Homebrew安装Carthage之前,先对其进行更新:
1
sudo brew update
  • 安装Carthage
1
sudo brew install carthage
安装完毕后的路径 /opt/homebrew/Cellar/carthage

如果xcode 报错 /usr/local/bin/carthage : No such file or dictionary,将上面路径下的carthage中的二进制文件拷贝到/usr/local/bin/路径下面。

  • 查看及升级Carthage版本
1
2
carthage version
brew upgrade carthage
  • 卸载Carthage
1
sudo brew uninstall carthage

Carthage使用

1.创建Cartfile文件:

  • 创建一个文件用于配置安装哪些库(cd 进入到工程项目)
1
touch Cartfile
  • 导入库,例如SVProgressHUD,在创建的Cartfile文件中编辑
1
github "SVProgressHUD/SVProgressHUD" ~> 1.0
1
2
3
4
~>3.0:表示使用版本3.0以上但是低于4.0的最新版本,如3.5, 3.9。
==3.0:表示使用3.0版本。
>=3.0:表示使用3.0或更高的版本。
如果你没有指明版本号,则会自动使用最新的版本。
  • 保存退出,下面就该安装了
1
Carthage update --platform iOS
  • 安装完毕后工程目录如下:

2.配置xcode项目:引入Framework

  • Target -> Build Phases -> Link Library with Libraries选择Carthage/Build导入framework

  • 点击Build Phases,点击“+” -> New Run Script Phase

  • 添加添加脚本 /usr/local/bin/Carthage copy-frameworks

  • 添加”Input Files” $(SRCROOT)/Carthage/Build/iOS/SVProgressHUD.framework

使用

  • 在项目文件中导入
1
#import <SVProgressHUD/SVProgressHUD.h>

注意:Carthage包管理由于使用的是动态库,有的三方库不支持模拟器调试!!必须使用真机!!

  • 本文作者: Grx
  • 本文链接: https://ruixiaoguo.github.io/Grx.github.io/Grx.github.io/2022/01/19/Carthage包管理三方库/
  • 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
  • OC

扫一扫,分享到微信

微信支付宝离线支付原理
创建属于自己的私有库(码云)以及提交到cocoapods
  1. 1. carthage和cocopods区别
    1. 1.1. cocopods:
    2. 1.2. cocopods缺点:
    3. 1.3. Carthage:
    4. 1.4. Carthage缺点:
  2. 2. Carthage安装
    1. 2.0.0.1. 安装完毕后的路径 /opt/homebrew/Cellar/carthage
  3. 2.0.1. 如果xcode 报错 /usr/local/bin/carthage : No such file or dictionary,将上面路径下的carthage中的二进制文件拷贝到/usr/local/bin/路径下面。
  • 3. Carthage使用
    1. 3.1. 1.创建Cartfile文件:
    2. 3.2. 2.配置xcode项目:引入Framework
  • 4. 使用
    1. 4.1. 注意:Carthage包管理由于使用的是动态库,有的三方库不支持模拟器调试!!必须使用真机!!
  • © 2014-2024 Grx
    GitHub:hexo-theme-yilia-plus by Litten
    本站总访问量次 | 本站访客数人
    • 标签
    • 友链
    • 关于我

    tag:

    • life
    • OC
    • Google
    • Fastlane
    • Flutter
    • hexo
    • 智能家居
    • Apple Watch
    • 逆向
    • Lottie
    • PHP
    • cocos2d
    • Mac
    • MonkeyKing
    • RN
    • Swift
    • RAC
    • WKWebView
    • WebView
    • Xcode
    • xcode
    • ios
    • Android
    • appledoc
    • MMKV
    • LLVM
    • FreamWork






      
      

    • 唐巧的博客
    • 王巍(喵神)OneVsDen
    • 阿里“念纪“
    • 滴滴-戴铭
    • 郭曜源(ibireme)
    • 阿里”南栀倾寒“
    • 蘑菇街李忠
    • 码农人生
    • 玉令天下
    • bang
    • Ian的博客
    这里是Grx的个人博客:
    iOS开发工程师一枚
    联系方式:
    QQ:1217255509
    Email:grx0917@sina.com
    知识管理,时间管理,自我管理,架构即未来
    欢迎技术交流!