От подключения до проверки артефактов

Подключите облачный Mac к процессу сборки

Это не обзор концепций, а набор пошаговых действий. Сначала проверьте личность выделенного физического узла и настройте безопасность, затем подготовьте Xcode, материалы подписи и автоматизированные задачи; при сбоях соберите сетевой вывод и логи сборки в едином формате.

5 категорий Темы поддержки
6 шагов Цепочка автоматической сборки
2 способа Отслеживаемые каналы связи
МАРШРУТ ПОДДЕРЖКИ RUNNER MAC-01
01
Получение и проверка Параметры подключения, отпечаток хоста, первоначальный пароль
Подготовка
02
Подготовка среды сборки Xcode, инструменты, материалы подписи, каталоги
Настройка
03
Запуск автоматизированной задачи Извлечение, кэш, архивирование, экспорт, проверка
Выполнение
04
Сбор диагностических материалов Узел, заказ, время, команды и полный вывод
Диагностика
Любая диагностика начинается с воспроизводимых входных данных
Первое подключение

Проверьте узел и настройте безопасность за пять шагов

RunnerVM предоставляет выделенный физический Mac mini, а не виртуальную машину. При первом подключении важно не просто выполнить команду, а убедиться, что вы подключились к устройству из заказа, и заменить первоначальный способ доступа настройками безопасности команды.

  1. 01

    Получите данные поставки в консоли

    Проверьте идентификатор заказа, регион узла, адрес подключения, SSH-порт, параметры VNC и первоначальное имя пользователя. Не пересылайте полные учётные данные в чате; при работе команды передавайте только необходимые поля фактическому исполнителю.

  2. 02

    Сначала зафиксируйте отпечаток хоста

    Посимвольно сравните отпечаток хоста из консоли с первым предупреждением SSH. При несовпадении алгоритма или дайджеста прекратите подключение и отправьте заявку; не обходите проблему удалением записи из локального known_hosts.

  3. 03

    Установите подключение по SSH

    Подключитесь с хостом, портом и именем пользователя из заказа. После входа сначала выполните sw_vers,uname -m и hostname, а затем запишите версию системы, архитектуру Apple Silicon и имя устройства в запись поставки.

  4. 04

    При необходимости подключите удалённый рабочий стол VNC

    В локальном клиенте VNC укажите адрес, порт и пароль из консоли. При первом подключении используйте разрешение по умолчанию, проверьте клавиатуру, указатель и масштабирование окна, а после стабилизации сеанса увеличьте размер изображения.

  5. 05

    Смените пароль и ограничьте права

    Сразу смените первоначальный пароль, проверьте ключи SSH и права администратора, оставив только необходимый доступ. Затем заново установите сеансы SSH и VNC, убедитесь в действительности новых данных и только после этого импортируйте проект или материалы подписи.

Примеры выполнения команд

От проверки подключения до вывода архива

Ниже показан порядок типичной задачи сборки с выводом SSH, xcodebuild и fastlane. Хост, рабочую область, Scheme, конфигурацию экспорта и lane в командах необходимо заменить реальными значениями проекта — не копируйте их без изменений для любого репозитория.

  • Сначала подтвердите цель подключения, затем перейдите в каталог проекта.
  • Используйте для архива уникальный каталог задачи, чтобы избежать перезаписи при параллельном запуске.
  • Сохраняйте полный стандартный вывод и код завершения, а не только последнюю строку.
runner-build-session zsh
Подключение к узлу SSH
$ ssh -p 22 runner@10.0.0.12
Host key fingerprint: SHA256:…
$ sw_vers
ProductName: macOS
$ uname -m
arm64
Создание архива XCODEBUILD
$ xcodebuild archive \
-workspace RunnerApp.xcworkspace \
-scheme RunnerApp \
-archivePath build/RunnerApp.xcarchive
** ARCHIVE SUCCEEDED **
Запуск автоматизированного процесса FASTLANE
$ bundle exec fastlane ios build
[08:42:16]: Resolving signing settings
[08:43:02]: Archive completed
[08:43:11]: Export verified
[08:43:11]: fastlane finished successfully
Примеры команд необходимо адаптировать к рабочей области, Scheme, способу подписи и структуре каталогов проекта.
Подготовка среды

Сделайте Xcode, материалы подписи и каталоги проверяемыми

Проблемы среды обычно связаны не с тем, открывается ли Xcode, а с согласованностью выбора графического интерфейса, пути командной строки, настроек проекта и контекста подписи. Проверяйте всё в указанном порядке, чтобы быстрее отделить проблему инструментов от проблемы проекта.

01

Проверьте версию и путь Xcode

Выполните xcodebuild -version и xcode-select -p. Если на узле установлено несколько версий, сначала уточните требования проекта, затем переключите каталог разработчика, чтобы графический интерфейс и автоматизированные задачи не использовали разные версии.

02

Проверьте Command Line Tools

Выполните xcrun --find xcodebuild,xcrun simctl list и один раз выполните разбор проекта без подписи. Если инструмент отсутствует или список SDK некорректен, сначала восстановите цепочку инструментов, не изменяйте файлы проекта напрямую.

03

Создайте связку ключей для задачи

Поместите сертификаты автоматизированной задачи в отдельную связку ключей, задайте понятные шаги разблокировки и минимальный объём доступа. Не записывайте пароль в репозиторий, параметры скрипта или лог сборки.

04

Импортируйте сертификаты и профили подготовки

Зафиксируйте название сертификата, срок действия, идентификатор команды и UUID профиля подготовки; убедитесь, что Bundle Identifier соответствует конфигурации цели. После импорта проверьте доступные удостоверения командой security find-identity -v -p codesigning .

05

Спланируйте каталоги сборки

Разделите исходники, кэш зависимостей, DerivedData, Archive, Export и логи. Для каждой задачи используйте уникальный путь архива; общий кэш должен содержать только восстанавливаемые данные, чтобы материалы подписи не попали в него.

Автоматическая сборка

Превратите успешную сборку в шесть повторяемых этапов

Цель автоматизации — не перенести локальный скрипт на удалённый узел, а сделать воспроизводимыми входные данные, среду, подпись и результаты. Каждый этап должен оставлять понятную запись, чтобы при сбое было ясно, где он произошёл.

  1. 01

    Извлеките фиксированную версию кода

    Используйте хэш коммита или защищённый тег, а не движущуюся вершину ветки. Зафиксируйте версии подмодулей, состояние Git LFS и чистоту репозитория.

    git checkout --detach <commit>
  2. 02

    Восстановите и проверьте кэш зависимостей

    Ключ кэша должен включать как минимум дайджест lock-файла, версию инструментов и архитектуру. При промахе кэша выполните обычную установку; успешная сборка не должна зависеть от обязательного попадания в кэш.

    bundle check || bundle install
  3. 03

    Загрузите конфигурацию подписи

    Разблокируйте связку ключей задачи, импортируйте подходящий профиль подготовки и проверьте доступное удостоверение подписи. Ключи и пароли нельзя выводить в стандартный вывод.

    security find-identity -v -p codesigning
  4. 04

    Выполните Archive

    Явно укажите рабочую область, Scheme, Configuration, Destination и путь архива. Сохраните полный лог и код завершения xcodebuild.

    xcodebuild archive …
  5. 05

    Экспортируйте артефакты поставки

    Храните конфигурацию экспорта под управлением версий, но без секретов. Разделяйте каталоги экспорта и архива, чтобы повторный запуск не перезаписал исходный xcarchive.

    xcodebuild -exportArchive …
  6. 06

    Проверьте и зарегистрируйте результат

    Проверьте наличие и размер файлов, дайджест, сведения о подписи и код завершения задачи; свяжите идентификатор артефакта с версией коммита, версией Xcode и путём к логам.

    shasum -a 256 build-output
Удалённый рабочий стол

Используйте VNC для графических действий, а длительные задачи передавайте отдельному процессу

Удалённый рабочий стол подходит для первоначальной графической настройки, проверки состояния интерфейса Xcode и задач, требующих визуального контроля. Непрерывность сборки не должна зависеть от того, остаётся ли локальное окно VNC подключённым.

Параметры подключения

Строго используйте адрес, порт, имя пользователя и пароль из консоли. Даже при поддержке файла конфигурации подключения не записывайте пароль в синхронизируемый файл открытым текстом.

Настройка разрешения

При первом подключении используйте размер по умолчанию. После проверки стабильности взаимодействия постепенно увеличивайте разрешение; при задержке ввода сначала уменьшите глубину цвета и размер изображения, затем проверьте сетевой маршрут.

Блокировка сеанса

Перед уходом заблокируйте графический сеанс; закрытие клиента VNC не заменяет блокировку экрана. При смене сотрудников отменяйте больше не нужные права доступа.

Задачи после отключения

Длительные сборки должны выполняться в CI runner, launchd, tmux или другом восстанавливаемом сеансе. Один раз намеренно отключитесь и убедитесь, что задача и логи продолжают выполняться и записываться.

Лист передачи удалённого сеанса VNC / SSH
Перед началом Проверьте личность узла и сеанса

Подтвердите регион заказа, имя устройства и текущего пользователя.

Во время работы Задача записывает отдельный лог

Не судите о продолжении сборки только по выводу на экране.

Перед уходом Заблокируйте сеанс и проверьте фоновую задачу

После отключения проверьте по SSH процессы, рост лога и состояние завершения.

После передачи Отмените временные права

Удалите временные открытые ключи, одноразовые файлы и больше не нужные учётные данные.

Сеть и задержка

За одну проверку зафиксируйте доступность, маршрут, разрешение имён и порт

Для диагностики сети нужно точно указать, откуда и когда выполнялся запрос, к какой цели обращались и какой полный вывод получили. Один снимок экрана или фраза «соединение медленное» не позволяют отличить локальную сеть, межрегиональный маршрут, DNS, правила портов и состояние целевого сервиса.

PING

Проверьте базовый RTT и потери пакетов

Отправьте фиксированное число пакетов подряд и сохраните минимальную, среднюю и максимальную задержку, а также процент потерь. Один ответ не отражает качество всего соединения.

ping -c 20 target-host
TRACEROUTE

Проверьте, где меняется маршрут

Запустите команду из исходной сети, где возникла проблема, и сохраните все переходы. Отсутствие ответа промежуточного узла не означает разрыв канала; оценивайте ситуацию вместе с доступностью конечной цели.

traceroute target-host
DNS

Проверьте результаты и время разрешения

Запишите текущий DNS-сервер, возвращённые адреса и время запроса. Если в разных сетях результаты отличаются, приложите вывод с обеих сторон без ручного редактирования.

dig target-host
PORT

Проверьте доступность целевого порта

Отдельно проверьте SSH-порт или порт, используемый проектом. Успешное подключение означает только доступность TCP, но не завершение аутентификации и протокола верхнего уровня.

nc -vz target-host 22
Диагностический пакет для заявки

Пять обязательных сведений при отправке

NET-CHECK
Время проблемы
Укажите местные дату, время, часовой пояс и длительность.
Источник запроса
Укажите узел-источник, офисную или домашнюю сеть и оператора.
Данные цели
Укажите идентификатор заказа, регион узла, целевой хост и порт.
Полный вывод
Приложите исходные результаты ping, traceroute, DNS- и портовой проверки.
Сравнительный результат
По возможности добавьте аналогичный тест из другой сети или в другое время.

Перед отправкой удалите пароли, закрытые ключи, токены и бизнес-данные, но не удаляйте временные метки, коды ошибок, переходы маршрута или параметры команд.

Порядок обращения в поддержку

Сначала сузьте область проблемы, затем отправьте отслеживаемую заявку

Предпродажные вопросы, общие консультации и описания, не связанные с конкретным заказом, можно отправить по электронной почте; проблемы узла, сборки, подключения или биллинга следует передавать через консоль, чтобы связать их с заказом и отслеживать статус.

  1. 01

    Найдите и выполните подходящее руководство

    Выберите путь для первого подключения, подготовки среды, автоматизации или диагностики сети. Запишите выполненные шаги, команды, результаты и место первого сбоя.

  2. 02

    Соберите минимальные материалы для воспроизведения

    Укажите идентификатор заказа, регион узла, время проблемы, шаги воспроизведения, ожидаемый и фактический результат, а также обезличенный полный лог. Для проблем сборки добавьте версию коммита и Xcode.

  3. 03

    Отправьте заявку через консоль

    Выберите наиболее подходящую категорию и добавьте лог вложением или блоком кода в тексте. Одна заявка — одна проблема; не смешивайте сетевые, сборочные и биллинговые сбои.

  4. 04

    Дополняйте исходную заявку

    После повторной проверки отвечайте в исходной заявке, добавляя новое время, команды и вывод. Даже при срочном инциденте проверяйте статус через консоль и не создавайте дубликаты.

Связь с конкретным заказом

Заявка в консоли

Подходит для ошибок подключения, проблем узла, среды сборки, проверки биллинга и вопросов, требующих дальнейшего сопровождения. Заявка связывается с заказом и сохраняет полную историю обработки.

  • Идентификатор заказа и регион узла
  • Время возникновения проблемы с часовым поясом
  • Шаги воспроизведения и полный вывод ошибки
  • Выполненные диагностические команды и результаты
Войти в консоль и отправить заявку
Общие консультации

Отправить письмо в поддержку

Подходит для выбора решения до покупки, уточнения процессов, сообщений о безопасности и вопросов, не связанных с узлом. Укажите категорию в теме письма и не включайте пароли или ключи в текст.

support@runnervm.com
Нужен шаблон

Сначала создайте структурированное описание

На странице контактов перечислены обязательные сведения для вопросов о покупке, технике, биллинге и безопасности — используйте их перед отправкой письма, чтобы проверить полноту материалов.

Посмотреть информацию для связи
Частые вопросы

Перед диагностикой уточните эти границы

Ответы ниже помогают отличить поставку устройства, способ подключения, задачу сборки и материалы поддержки, чтобы не тратить время на неверные действия.

RunnerVM предоставляет виртуальный экземпляр?

Нет. Заказ относится к выделенному физическому узлу Mac mini с конфигурацией Runner M4: Mac Mini M4, 16GB RAM, 256GB SSD. Удалённое подключение — лишь способ доступа; сервис не является общим виртуальным ресурсом.

Продолжится ли сборка после отключения VNC?

Это зависит от способа запуска. CI runner, launchd, tmux и отдельные фоновые процессы обычно не зависят от окна VNC; интерактивные задачи, привязанные к графическому сеансу, могут зависеть от его состояния. Перед рабочим использованием намеренно отключитесь и проверьте процессы, логи и состояние завершения.

Что подготовить до первого подключения?

Подготовьте рабочие SSH- и VNC-клиенты, внутренний способ хранения учётных данных команды, требуемую проектом версию Xcode, список материалов подписи и процесс управления секретами, который не записывает их в репозиторий. После получения данных поставки сначала проверьте отпечаток хоста и личность устройства.

Изменит ли диагностика период оплаты заказа?

Нет, автоматически не изменит. Runner M4 можно заказать на день, неделю, месяц или квартал; период заказа и статус обработки определяются записями в консоли. Для проверки конкретного заказа отправьте связанную с ним заявку через консоль.

Что очистить после завершения задачи?

Сначала экспортируйте нужные архивы, артефакты и обезличенные логи, затем очистите рабочую область исходников, временную связку ключей подписи, профили подготовки, временные открытые ключи, токены доступа и конфиденциальные данные в кэше проекта. Не оставляйте открытые учётные данные в истории shell или параметрах скриптов.

Как выбрать подходящий узел?

Сначала протестируйте задержку и маршрут до целевого региона из фактической офисной сети или источника CI, затем учитывайте часовой пояс команды и направление передачи артефактов. Runner M4 доступен для заказа в пяти регионах: Сингапур, Токио, Сеул, Гонконг и восток США; актуальная доступность отображается в консоли.

Следующая сборка

Начните с проверяемого облачного Mac

Выберите Runner M4 и целевой регион, оформите заказ, затем проверьте подключение, подготовьте инструменты и запустите первую воспроизводимую задачу сборки по шагам этой страницы.