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 子目录找到所有编译好的依赖。

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

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

相关推荐
iOS日常1 小时前
Xcode 垃圾清理
ios·xcode
开心就好20253 小时前
不越狱能抓到 HTTPS 吗?在未越狱 iPhone 上抓取 HTTPS
后端·ios
傅里叶7 小时前
iOS相机权限获取
flutter·ios
zhangkai1 天前
flutter存储知识点总结
flutter·ios
齐生11 天前
网络知识点 - TCP/IP 四层模型知识大扫盲
笔记·ios
IT技术分享社区1 天前
数码资讯:iPhone 18 Pro,十大升级细节浮出水面
ios·手机·iphone
嵌入式学习菌1 天前
https不校验证书实现及https接口实现
ios·iphone