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

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

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

相关推荐
2401_8658548812 小时前
iOS应用想要下载到手机上只能苹果签名吗?
后端·ios·iphone
HackerTom1 天前
iOS用rime且导入自制输入方案
ios·iphone·rime
良技漫谈1 天前
Rust移动开发:Rust在iOS端集成使用介绍
后端·程序人生·ios·rust·objective-c·swift
2401_852403551 天前
高效管理iPhone存储:苹果手机怎么删除相似照片
ios·智能手机·iphone
星际码仔2 天前
【动画图解】是怎样的方法,能被称作是 Flutter Widget 系统的核心?
android·flutter·ios
emperinter2 天前
WordCloudStudio:AI生成模版为您的文字云创意赋能 !
图像处理·人工智能·macos·ios·信息可视化·iphone
关键帧Keyframe2 天前
音视频面试题集锦第 8 期
ios·音视频开发·客户端
pb82 天前
引入最新fluwx2.5.4的时候报错
flutter·ios
袁代码2 天前
Swift 开发教程系列 - 第4章:函数与闭包
ios·swift·ios开发
#摩斯先生3 天前
IOS 防截屏实现
ios·xcode