跳转到内容

注册中心

随着依赖数量的增长,解析它们所需的时间也在增加。虽然 CocoaPodsnpm 等其他包管理器是集中式的,但 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

要手动设置注册中心,请在项目目录中运行以下命令:

Terminal window
tuist registry setup

此命令会生成一个注册中心配置文件,为你的项目启用注册中心。请确保将此文件提交,以便你的团队也能从注册中心受益。

认证是可选的。未认证时,你可以使用注册中心,每个 IP 地址的速率限制为每分钟 1,000 次请求。要获得更高的速率限制(每分钟 20,000 次请求),可以运行以下命令进行认证:

Terminal window
tuist registry login

要从注册中心而非源码管理解析依赖,请根据你的项目设置继续阅读:

  • Xcode 项目
  • 使用 Xcode 包集成的生成项目
  • 使用基于 XcodeProj 的包集成的生成项目
  • Swift 包

要在 CI 上设置注册中心,请参阅此指南:持续集成

当你在 Package.swiftProject.swift 文件中使用包注册中心标识符时,需要将包的 URL 转换为注册中心约定的格式。注册中心标识符始终为 {organization}.{repository} 的形式。例如,要对 https://github.com/pointfreeco/swift-composable-architecture 包使用注册中心,包注册中心标识符为 pointfreeco.swift-composable-architecture