# 注册表 {#registry} 随着依赖关系数量的增加,解决这些问题所需的时间也在增加。CocoaPods](https://cocoapods.org/) 或 [npm](https://www.npmjs.com/) 等其他软件包管理器是集中式的,而 Swift 软件包管理器不是。因此,SwiftPM 需要通过深度克隆每个版本库来解决依赖关系,这可能比集中式方法更耗时、占用更多内存。为了解决这个问题,Tuist 提供了[包注册中心](https://github.com/swiftlang/swift-package-manager/blob/main/Documentation/PackageRegistry/PackageRegistryUsage.md)的实现,因此你可以只下载_实际需要的提交_ 。注册表中的软件包基于[Swift 软件包索引](https://swiftpackageindex.com/)。- 如果您能在这里找到某个软件包,那么该软件包也能在 Tuist 注册表中找到。此外,这些软件包分布在全球各地,使用边缘存储,以便在解析时将延迟降到最低。 ## 用法 {#usage} 要设置注册表,请在项目目录下运行以下命令: ```bash tuist registry setup ``` 该命令会生成一个注册表配置文件,为你的项目启用注册表。确保该文件已提交,以便你的团队也能受益于注册表。 ### 身份验证(可选) {#authentication} **验证是可选的** 。在未进行身份验证的情况下,使用注册表的速率限制为**,每个 IP 地址每分钟 1,000 次请求** 。要获得**每分钟 20,000 次请求的更高速率限制** ,可以通过运行以下程序进行身份验证: ```bash tuist registry login ``` 信息 身份验证需要有 Tuist 帐户和项目 ::: ### 解决依赖关系 {#resolving-dependencies} 要从注册表而不是源代码控制中解决依赖关系问题,请根据项目设置继续阅读: - Xcode 项目 - 使用 Xcode 软件包集成生成项目 - 使用基于 XcodeProj 的软件包集成生成项目 - Swift 包 要在 CI 上设置注册表,请遵循本指南:持续集成。 ### 软件包注册表标识符 {#package-registry-identifiers} 在`Package.swift` 或`Project.swift` 文件中使用软件包注册表标识符时,需要将软件包的 URL 转换为注册表约定。注册表标识符的形式总是`{organization}.{repository}` 。例如,要使用`https://github.com/pointfreeco/swift-composable-architecture` 软件包的注册表,软件包注册表标识符应为`pointfreeco.swift-composable-architecture` 。 信息 标识符不能包含一个以上的点。如果版本库名称中包含点,则用下划线代替。例如,`https://github.com/groue/GRDB.swift` 软件包的注册表标识符为`groue.GRDB_swift` 。 :::