01 · Синхронизация данных
Переносите только исходный код и нужные данные
Передайте проект через rsync или SFTP. Исключите DerivedData, временные каталоги сборки и кэш, который можно создать заново. Сохраните lock-файлы зависимостей, ресурсы для тестов и конфигурацию проекта.
Проверьте:Сверьте идентификатор коммита и контрольные суммы важных файлов, проверьте рабочий каталог, права доступа и свободное место. При первом запуске используйте режим предварительного просмотра.
rsync -azn \
--exclude 'DerivedData/' \
--exclude 'build/' \
./project/ \
"$MAC_HOST:~/work/project/"
После проверки предварительного просмотра удалите n.MAC_HOST должен содержать предоставленный псевдоним SSH-подключения. В этом примере существующие файлы на удалённом сервере не удаляются.
02 · Восстановление набора инструментов
Сначала выровняйте версии, затем добавьте учётные данные
Подготовьте зависимости Homebrew, Xcode и Command Line Tools по списку проекта. Проверьте каталог разработчика, а затем безопасным способом импортируйте сертификаты и профили подготовки.
Проверьте:Сравните версии Xcode, Swift и зависимостей на локальном компьютере и сервере. Выполните сборку без учётных данных для публикации, чтобы сначала исключить расхождения базовой среды.
xcode-select -p
xcodebuild -version
swift --version
brew bundle check
brew bundle check Сначала установите Homebrew и выполните команду в каталоге с Brewfile проекта. Команда проверяет зависимости, но не импортирует материалы для подписания.
03 · Подключение CI
Сначала запустите вручную, затем настройте автоматические задачи
Сначала вручную выполните команду проекта на сервере, затем зарегистрируйте Runner по инструкции вашей платформы и настройте доступ к репозиторию, метки задач, рабочий каталог и права на учётные данные.
Проверьте:Отправьте тестовый коммит и убедитесь, что задача запускается на нужном сервере, логи доступны для проверки, а артефакты можно получить. После выхода из интерактивного сеанса проверьте, как работает служба.
uname -m
xcodebuild -list
launchctl list
Проверьте цель сборки в каталоге проекта. Способ регистрации и постоянной работы Runner зависит от версии платформы. Один успешный запуск в интерактивном сеансе ещё не означает, что служба настроена.
Миграция завершена, если
один и тот же коммит можно запускать повторно, зависимости и данные для подписания можно отследить, результаты сохраняются за пределами сервера, а доступ к учётным данным можно отозвать. Время миграции зависит от размера проекта, сети и загрузки инструментов; мы не обещаем единый срок в минутах.