注册中心
随着依赖数量的增长,解析它们所需的时间也在增加。虽然 CocoaPods 或 npm 等其他包管理器是集中式的,但 Swift Package Manager 不是。正因为如此,SwiftPM 需要通过深度克隆每个仓库来解析依赖,这既耗时又比集中式方案占用更多内存。为了解决这个问题,Tuist 提供了 Package Registry 的实现,这样你就可以只下载你_实际需要_的提交。注册中心中的包基于 Swift Package Index —— 如果你能在那里找到一个包,它也可以在 Tuist Registry 中使用。此外,这些包通过边缘存储全球分发,以确保解析时的最低延迟。
设置注册中心有两种方式:
方式一:生成期间自动设置(推荐)
Section titled “方式一:生成期间自动设置(推荐)”如果你使用 Tuist 生成项目,可以通过在 Tuist.swift 配置中设置 registryEnabled 选项来启用注册中心:
import ProjectDescription
let tuist = Tuist( project: .tuist( generationOptions: .options( registryEnabled: true ) ))使用此选项,tuist generate 会自动在工作区中创建注册中心配置文件。这无需单独运行 tuist registry setup。
方式二:手动设置
Section titled “方式二:手动设置”要手动设置注册中心,请在项目目录中运行以下命令:
tuist registry setup此命令会生成一个注册中心配置文件,为你的项目启用注册中心。请确保将此文件提交,以便你的团队也能从注册中心受益。
认证(可选)
Section titled “认证(可选)”认证是可选的。未认证时,你可以使用注册中心,每个 IP 地址的速率限制为每分钟 1,000 次请求。要获得更高的速率限制(每分钟 20,000 次请求),可以运行以下命令进行认证:
tuist registry login要从注册中心而非源码管理解析依赖,请根据你的项目设置继续阅读:
Xcode 项目 使用 Xcode 包集成的生成项目 使用基于 XcodeProj 的包集成的生成项目 Swift 包
要在 CI 上设置注册中心,请参阅此指南:
包注册中心标识符
Section titled “包注册中心标识符”当你在 Package.swift 或 Project.swift 文件中使用包注册中心标识符时,需要将包的 URL 转换为注册中心约定的格式。注册中心标识符始终为 {organization}.{repository} 的形式。例如,要对 https://github.com/pointfreeco/swift-composable-architecture 包使用注册中心,包注册中心标识符为 pointfreeco.swift-composable-architecture。