# Rejestr {#registry} Wraz ze wzrostem liczby zależności rośnie czas ich rozwiązywania. Podczas gdy inne menedżery pakietów, takie jak [CocoaPods](https://cocoapods.org/) lub [npm](https://www.npmjs.com/) są scentralizowane, Swift Package Manager nie jest. Z tego powodu SwiftPM musi rozwiązywać zależności poprzez głębokie klonowanie każdego repozytorium, co może być czasochłonne i zajmuje więcej pamięci niż podejście scentralizowane. Aby temu zaradzić, Tuist zapewnia implementację [Rejestru pakietów](https://github.com/swiftlang/swift-package-manager/blob/main/Documentation/PackageRegistry/PackageRegistryUsage.md), dzięki czemu można pobrać tylko te zatwierdzenia, których _faktycznie potrzebujesz_. Pakiety w rejestrze są oparte na [Swift Package Index](https://swiftpackageindex.com/). - jeśli można tam znaleźć pakiet, jest on również dostępny w rejestrze Tuist. Ponadto pakiety są dystrybuowane na całym świecie przy użyciu pamięci masowej typu edge storage w celu zminimalizowania opóźnień podczas ich rozwiązywania. ## Użycie {#usage} Aby skonfigurować rejestr, uruchom następujące polecenie w katalogu projektu: ```bash tuist registry setup ``` To polecenie generuje plik konfiguracyjny rejestru, który włącza rejestr dla projektu. Upewnij się, że plik ten został zatwierdzony, aby Twój zespół również mógł korzystać z rejestru. ### Uwierzytelnianie (opcjonalne) {#authentication} Uwierzytelnianie jest **opcjonalne**. Bez uwierzytelniania można korzystać z rejestru z limitem szybkości **1000 żądań na minutę** na adres IP. Aby uzyskać wyższy limit szybkości, wynoszący **20 000 żądań na minutę**, można uwierzytelnić się, uruchamiając: ```bash tuist registry login ``` :: info Uwierzytelnianie wymaga konta Tuist i projektu. ::: ### Rozwiązywanie zależności {#resolving-dependencies} Aby rozwiązać zależności z rejestru zamiast z kontroli źródła, kontynuuj czytanie w oparciu o konfigurację projektu: - Projekt Xcode - Wygenerowany projekt z integracją pakietu Xcode - Wygenerowany projekt z integracją pakietów opartą na XcodeProj - Paczka Swift Aby skonfigurować rejestr na CI, postępuj zgodnie z tym przewodnikiem: Ciągła integracja. ### Identyfikatory rejestru pakietów {#package-registry-identifiers} W przypadku korzystania z identyfikatorów rejestru pakietów w pliku `Package.swift` lub `Project.swift` należy przekonwertować adres URL pakietu na konwencję rejestru. Identyfikator rejestru ma zawsze postać `{organization}.{repository}`. Na przykład, aby użyć rejestru dla pakietu `https://github.com/pointfreeco/swift-composable-architecture`, identyfikatorem rejestru pakietu będzie `pointfreeco.swift-composable-architecture`. :: info Identyfikator nie może zawierać więcej niż jedną kropkę. Jeśli nazwa repozytorium zawiera kropkę, jest ona zastępowana podkreśleniem. Na przykład pakiet `https://github.com/groue/GRDB.swift` miałby identyfikator rejestru `groue.GRDB_swift`. :::