# 注册表 {#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` 。
:::