Реестр
С ростом числа зависимостей увеличивается и время на их устранение. В то время как другие менеджеры пакетов, такие как CocoaPods или npm, являются централизованными, менеджер пакетов Swift таковым не является. Из-за этого SwiftPM приходится разрешать зависимости путем глубокого клонирования каждого репозитория, что может занимать больше времени и памяти, чем при централизованном подходе. Чтобы решить эту проблему, Tuist предоставляет реализацию Package Registry, чтобы вы могли загружать только те коммиты, которые вам действительно нужны. Пакеты в реестре основаны на Swift Package Index - если вы можете найти пакет там, то он также доступен в реестре Tuist. Кроме того, пакеты распределены по всему миру с использованием пограничного хранилища для минимальной задержки при их разрешении.
Использование#
Чтобы настроить реестр, выполните следующую команду в каталоге вашего проекта:
tuist registry setup
Эта команда генерирует файл конфигурации реестра, который включает реестр для вашего проекта. Убедитесь, что этот файл зафиксирован, чтобы ваша команда также могла воспользоваться преимуществами реестра.
Аутентификация (необязательно)#
Аутентификация является необязательной. Без аутентификации вы можете использовать реестр с ограничением скорости 1 000 запросов в минуту на один IP-адрес. Чтобы получить более высокий предел скорости 20 000 запросов в минуту, можно пройти аутентификацию, выполнив команду:
tuist registry login
Для аутентификации требуется учетная запись Tuist и проект.
Разрешение зависимостей#
Чтобы разрешить зависимости из реестра, а не из контроля исходных текстов, продолжайте читать в зависимости от настроек вашего проекта:
- Проект Xcode
- Сгенерированный проект с интеграцией пакета Xcode
- Сгенерированный проект с интеграцией пакетов на основе XcodeProj
- Пакет Swift
Чтобы настроить реестр в CI, следуйте этому руководству: Непрерывная интеграция.
Идентификаторы реестра пакетов#
При использовании идентификаторов реестра пакетов в файле 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.