iOS 开发包管理之 carthage

iOS 包管理

CocoaPods(Objective-C 时期,支持Objective-C和swift),CocoaPods下载第三方库源代码后会将其编译成静态库.a 文件 或动态库框架.framework 文件 的形式,并将它们添加到项目中,建立依赖关系,这种方式会修改Xcode项目属性配置依赖关系。CocoaPods 搭建了一个中心库,第三方库被 收入到该中心库中,没有收录的第三方库是不能使用 CocoaPods 管理的。

Carthage 没有这样的中心库,支持两种类型的源,一个是github,另一个是git。,第三方库基本上都是从 github 或私有 git 库中下载的,下载后会将其编译成动态框架.framework 文件,再由开发人员自己配置依赖关系,这种方式不会修改 Xcode 项目属性。

安装carthage

复制代码
brew install carthage

在工程目录创建cartfile

复制代码
touch cartfile

并添加依赖

复制代码
github "Alamofire/Alamofire" "5.0.0-rc.3"
github "onevcat/Kingfisher"
github "nixzhu/MonkeyKing"
github "SwiftyJSON/SwiftyJSON" ~> 4.0
github "SnapKit/SnapKit" ~> 5.0.0

github 依赖源,告诉 carthage 去哪里下载文件 ,后面是对应的库的名称 ,格式为 Username/ProjectName

如果是 git 的源,则 git 关键字后面跟的是 git 的地址(git://,http:// ,ssh://开头的地址,或者是本地的地址)

版本号,可选的,它的配置规则如下:

== 1.0 ,表示使用 1.0 版本

>= 1.0 ,表示使用 1.0 或更高的版本

~>1.0 表示使用 1.0 以上但是低于 2.0 的版本,如 1.3,1.6,

版本号还可以是Branch 名 tag 名commit 名即使用特定的分支或标签或提交。commit 名如 5c8a74b 之类的

拉取依赖

配置好文件后,执行下面的命令拉取依赖:

复制代码
carthage update --platform ios # 意思是指下载只支持iOS的依赖,其他如支持macos的依赖就不下载

拉取完成后项目会多出如下文件

  • cartfile: 是我们前面创建的
  • Cartfile.resolved:是具体的依赖版本对应关系,为了多端开发一致,这个文件建议提交到版本控制中。这个文件的内容如下:
  • Carthage 目录:这个目录里包含从 git 里拉取出来的依赖源文件,它包含两个子目录:

    Build 子目录包含了编译后的文件,它包含 Macos 和 iOS 对应的 .framework文件
    Checkouts 子目录就是依赖的源文件

配置项目属性

carthage 需要我们手动去配置。

这个配置就是要告诉 xcode 去前面那个 build 子目录找到所有编译好的依赖。

再配置一个脚本,这个脚本的作用就是在编译项目时把编译好的依赖拷贝过来参与编译

接下来就可以愉快地进行开发了。

相关推荐
库奇噜啦呼16 小时前
【iOS】源码学习-SDWebImage源码学习
学习·ios
zuYM4g7Dp17 小时前
文顶顶iOS开发数据库篇—SQL
数据库·sql·ios
超梦dasgg18 小时前
APP 壳、加固、脱壳 完整通俗讲解(安卓为主,兼顾 iOS)
android·ios
代码的小搬运工19 小时前
【iOS】MVC架构
ios·架构·mvc
鹤卿12319 小时前
iOS OC NSUserDefaults
macos·ios·objective-c
2601_9557674219 小时前
移动OLED屏幕偏振光缺失的补偿方案:圆偏振光还原与磁控溅射AR协同光学系统设计
ios·ar·iphone·圆偏振光护眼·iphone17护眼钢化膜·#观复盾护景贴
sweet丶19 小时前
Swift async/await并发框架深入总结
ios
小雨下雨的雨2 天前
iOS风格计算器 - 鸿蒙PC Electron框架上的技术实现详解
游戏·ios·华为·electron·harmonyos·鸿蒙
人月神话Lee2 天前
【图像处理】一文带你窥探近期火热图像App的主要实现原理:主色提取——从图像到调色板
ios·ai编程·图像识别