Реестр
С ростом числа зависимостей увеличивается и время на их устранение. В то время как другие менеджеры пакетов, такие как CocoaPods или npm, являются централизованными, менеджер пакетов Swift таковым не является. Из-за этого SwiftPM приходится разрешать зависимости путем глубокого клонирования каждого репозитория, что может занимать больше времени и памяти, чем при централизованном подходе. Чтобы решить эту проблему, Tuist предоставляет реализацию Package Registry, чтобы вы могли загружать только те коммиты, которые вам действительно нужны. Пакеты в реестре основаны на Swift Package Index - если вы можете найти пакет там, то он также доступен в реестре Tuist. Кроме того, пакеты распределены по всему миру с использованием пограничного хранилища для минимальной задержки при их разрешении.
Использование
Чтобы настроить реестр, выполните следующую команду в каталоге вашего проекта:
bash
tuist registry setupЭта команда генерирует файл конфигурации реестра, который включает реестр для вашего проекта. Убедитесь, что этот файл зафиксирован, чтобы ваша команда также могла воспользоваться преимуществами реестра.
Аутентификация (необязательно)
Аутентификация является необязательной. Без аутентификации вы можете использовать реестр с ограничением скорости 1 000 запросов в минуту на один IP-адрес. Чтобы получить более высокий предел скорости 20 000 запросов в минуту, можно пройти аутентификацию, выполнив команду:
bash
tuist registry loginРазрешение зависимостей
Чтобы разрешить зависимости из реестра, а не из контроля исходных текстов, продолжайте читать в зависимости от настроек вашего проекта:
- Проект Xcode
- Сгенерированный проект с интеграцией пакета Xcode
- Сгенерированный проект с интеграцией пакетов на основе XcodeProj
- Пакет Swift
Чтобы настроить реестр в CI, следуйте этому руководству:
Непрерывная интеграция.Идентификаторы реестра пакетов
При использовании идентификаторов реестра пакетов в файле Package.swift или Project.swift необходимо преобразовать URL-адрес пакета к соглашению реестра. Идентификатор реестра всегда имеет вид {organization}.{repository}. Например, чтобы использовать реестр для пакета https://github.com/pointfreeco/swift-composable-architecture, идентификатор реестра пакета будет pointfreeco.swift-composable-architecture.
INFO
Идентификатор не может содержать более одной точки. Если имя репозитория содержит точку, она заменяется знаком подчеркивания. Например, пакет https://github.com/groue/GRDB.swift будет иметь идентификатор реестра groue.GRDB_swift.
