# 註冊{#registry}
隨著相依性數量的增加,解決這些相依性的時間也隨之增加。其他套件管理員,例如 [CocoaPods](https://cocoapods.org/) 或
[npm](https://www.npmjs.com/) 都是集中式的,但 Swift Package Manager 並非如此。因此,SwiftPM
需要透過深入克隆每個套件庫來解決依賴關係,這可能會比集中式的方式更費時,也會佔用更多記憶體。為了解決這個問題,Tuist 提供了 [Package
Registry](https://github.com/swiftlang/swift-package-manager/blob/main/Documentation/PackageRegistry/PackageRegistryUsage.md)
的實作,因此您可以只下載_實際需要的提交_ 。註冊表中的套件基於 [Swift 套件索引](https://swiftpackageindex.com/)。-
如果您能在那裡找到套件,該套件也可以在 Tuist Registry
中找到。此外,這些套件使用邊緣儲存區分佈在全球各地,以便在解析這些套件時將延遲時間降至最低。
## 使用方式{#usage}
要設定註冊表,請在專案目錄中執行下列指令:
```bash
tuist registry setup
```
此指令會產生一個註冊表組態檔,為您的專案啟用註冊表。確保已提交此檔案,以便您的團隊也能受惠於註冊表。
### 驗證(可選){#authentication}
**** 身份驗證是可選的。在沒有認證的情況下,您可以使用註冊表,速率限制為**,每個 IP 位址每分鐘 1,000 次請求**
。要獲得更高的速率限制**每分鐘 20,000 次請求** ,您可以執行驗證:
```bash
tuist registry login
```
> [!NOTE]
> 驗證需要 Tuist 帳戶和專案。
### 解決依賴性{#resolving-dependencies}
若要從登錄而非原始碼控制解決相依性問題,請根據您的專案設定繼續閱讀:
- Xcode 專案
- 使用 Xcode 套件整合產生專案
- 使用基於 XcodeProj 的套件整合產生專案
- 快速套裝
若要在 CI
上設定註冊表,請遵循此指南:Continuous integration.
### 套件登錄識別碼{#package-registry-identifiers}
當您在`Package.swift` 或`Project.swift` 檔案中使用套件註冊表識別符時,您需要將套件的 URL
轉換為註冊表慣例。註冊表識別符的形式總是`{organization}.{repository}`
。例如,若要使用`https://github.com/pointfreeco/swift-composable-architecture`
套件的註冊表,套件註冊表識別符應為`pointfreeco.swift-composable-architecture` 。
> [!NOTE]
> 識別符不能包含多於一個點。如果儲存庫名稱包含一個點,就會用下劃線取代。例如,`https://github.com/groue/GRDB.swift`
> 套件的註冊表標識符為`groue.GRDB_swift` 。