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 子目录找到所有编译好的依赖。
再配置一个脚本,这个脚本的作用就是在编译项目时把编译好的依赖拷贝过来参与编译
在这里插入图片描述
接下来就可以愉快地进行开发了。

相关推荐

  1. Node.js开发-管理工具

    2024-07-20 10:40:01       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 10:40:01       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 10:40:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 10:40:01       45 阅读
  4. Python语言-面向对象

    2024-07-20 10:40:01       55 阅读

热门阅读

  1. Android Studio关于Gradle及JDK问题解决

    2024-07-20 10:40:01       15 阅读
  2. Oracle(12)什么是主键(Primary Key)?

    2024-07-20 10:40:01       15 阅读
  3. 目标检测算法

    2024-07-20 10:40:01       15 阅读
  4. 使用python调用dll库

    2024-07-20 10:40:01       18 阅读
  5. 数据结构之栈、队列和数组的基本概念

    2024-07-20 10:40:01       15 阅读
  6. RoCE(RDMA over Converged Ethernet)网络速率测试工具

    2024-07-20 10:40:01       15 阅读
  7. 读取 Excel 文件

    2024-07-20 10:40:01       14 阅读
  8. 实战:springboot用LocalDateTime快速替换Date

    2024-07-20 10:40:01       15 阅读
  9. Spark的部署模式

    2024-07-20 10:40:01       16 阅读