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

Настройте удалённый Mac, сборку и диагностику без лишних шагов

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

Выделенный физический узел Apple Silicon: один заказ — одно устройство, не виртуальная машина. Перед первым подключением проверьте узел, версию системы и способ доступа.

ПЕРЕДАЧА УДАЛЁННОЙ СЕССИИ Передача удалённой сессии
СЕССИЯ / 05
Закреплённое устройство
Один выделенный физический Mac по заказу
Способ доступа
Графический интерфейс и SSH
Версия системы
Проверить сразу после первого подключения
Часовой пояс сессии
Настроить по процедурам узла и команды
Этапы подключения 01—05
  1. 01Проверьте заказ и узелМодель, регион и срок аренды
  2. 02Получите данные для доступаБезопасно просматривайте их только в консоли
  3. 03Установите удалённую сессиюСначала проверьте графический интерфейс и SSH
  4. 04Настройте инструменты разработкиЗафиксируйте версии Xcode и зависимостей
  5. 05Подключите автоматизированные задачиИзолируйте рабочие каталоги и кэш
Что поддерживается Подключение, инструменты, CI/CD, система и заказы
Узлы в продаже 5
Режим работы Работает 365 дней в году
Динамические данные Актуальные данные из консоли
Начните с задачи

Сначала определите, на каком этапе вы остановились

Необязательно читать всё с начала. Выберите текущую задачу и откройте соответствующий чек-лист. Заказы, продление и состояние устройства находятся в консоли, а техническая настройка и диагностика ошибок — на этой странице.

Удалённое подключение

Подключить облачный Mac

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

Открыть инструкции по подключению
Цепочка инструментов

Настроить инструменты разработки

Проверьте версию Xcode, сертификаты, профили provisioning, права Keychain и настройки автоматической подписи.

Проверить среду разработки
Автоматизация

Подключить CI/CD

Разверните self-hosted runner, спланируйте рабочий каталог и контролируйте зависимости и кэш сборки.

Развернуть runner
Проверка системы

Устранить системные проблемы

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

Открыть стратегию обновления
Задачи консоли

Управлять заказами

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

Открыть консоль
Руководство по удалённому подключению

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

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

  1. 01

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

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

  2. 02

    Проверьте подключение

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

  3. 03

    Настройте разрешение и буфер обмена

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

  4. 04

    Проверьте переподключение

    Один раз намеренно разорвите сессию и подключитесь снова: проверьте, продолжаются ли выполняемые команды и восстановилась ли графическая сессия на исходном рабочем столе. Длительные задачи лучше запускать в постоянной командной сессии или задании CI/CD.

  5. 05

    Ограничьте удалённый доступ

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

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

Три результата, подтверждающие готовность узла к сборке

Сначала проверьте SSH-сессию, затем выполните сборку Xcode и в конце протестируйте инструмент автоматической упаковки. Примеры показывают только логику проверки: название проекта, scheme, workspace и параметры экспорта замените настройками своей команды.

  • SSH: Убедитесь, что подключились к устройству из заказа, и зафиксируйте версию системы.
  • xcodebuild:Явно укажите workspace, scheme и configuration.
  • fastlane:Сначала выполните проверку только для чтения, затем запустите фактический lane упаковки.
build-session / assigned-node UTF-8 · zsh
$ ssh developer@assigned-mac
connection established
$ sw_vers -productVersion
current macOS version returned
$ xcodebuild -workspace App.xcworkspace \
  -scheme App -configuration Release build
Resolve Package Graph
CompileSwiftSources normal arm64
** BUILD SUCCEEDED **
$ bundle exec fastlane ios verify_build
Checking signing assets
Archive validation passed
fastlane finished successfully
Xcode и подпись

Проверяйте версию, сертификаты и права по отдельности

Большинство проблем с подписью не сводится к одному переключателю. Сначала зафиксируйте версии инструментов, затем проверьте соответствие сертификатов и профилей provisioning и в конце убедитесь, что процесс автоматизации имеет доступ к нужным элементам Keychain.

A

Проверьте путь к Xcode

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

$ xcodebuild -version
$ xcode-select -p
$ xcrun --find swift
B

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

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

  • Сертификат и закрытый ключ образуют пару
  • Профиль provisioning покрывает идентификатор цели
  • Конфигурация сборки ссылается на нужную команду
C

Проверьте права Keychain

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

  • Убедитесь, что пользователь выполнения совпадает
  • Ограничьте область видимости данных разблокировки
  • Не записывайте секреты в лог сборки
D

Найдите причину сбоя автоматической подписи

Сохраните команду с ошибкой, имя цели, configuration, способ экспорта и первую строку ошибки. Не отправляйте только последнюю общую ошибку: в ней обычно нет истинной причины.

  • Сначала проверьте первую ошибку подписи
  • Сравните переменные среды локальной машины и runner
  • Воспроизведите проблему на минимальной цели
Порядок проверки совместимости перед изменением цепочки инструментов
Объект проверки Что записать Критерий успеха Следующий шаг при сбое
macOS Текущая версия, свободное место Целевой Xcode явно поддерживает систему Остановить изменения и проверить матрицу совместимости
Xcode Версия, путь выбора, SDK Командная строка и графический интерфейс совпадают Исправить путь к инструментам и повторить минимальную сборку
Материалы подписи Состояние сертификатов, профили provisioning, команда Идентификатор цели соответствует способу экспорта Импортировать заново и проверить права Keychain
Зависимости проекта Lock-файлы, версии среды выполнения и плагинов Установка из чистого каталога воспроизводима Очистить локальный кэш и сохранить лог сбоя
Self-hosted runner

Изолируйте, очищайте и воспроизводите автоматизированные задачи

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

GITHUB ACTIONS Runner уровня репозитория или организации

Сначала проверьте один репозиторий, затем расширяйте область задач

  1. Регистрация:Создайте краткоживущие регистрационные данные в нужном репозитории или организации и настройте runner на целевом устройстве.
  2. Метки:Используйте метки, отражающие чип, назначение и цепочку инструментов, чтобы задания не попадали в неподходящую среду.
  3. Сервис:Запускайте runner от имени постоянного пользователя без привилегий и убедитесь, что после перезапуска он снова принимает задания.
  4. Проверка:Сначала выполните проверку версий и минимальную сборку, затем подключайте архивирование, тестирование и публикацию.
GITLAB RUNNER Runner уровня проекта или группы

Контролируйте источник задач с помощью меток и границ выполнения

  1. Регистрация:Убедитесь, что runner принадлежит нужному проекту или группе; не храните регистрационные данные в репозитории скриптов.
  2. Исполнитель:Выберите локальный путь выполнения согласно способу сборки и ограничьте типы запускаемых задач.
  3. Метки:Требуйте явного соответствия задания меткам, чтобы непроверенные задачи не попадали в среду подписи.
  4. Аудит:Сохраняйте идентификатор задания, версию коммита и этап сбоя, чтобы команда поддержки могла воспроизвести проблему.
WORK Рабочий каталог

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

CACHE Кэш зависимостей

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

OUTPUT Артефакты сборки

Храните артефакты отдельно от исходного кода, а после успешной загрузки очищайте локальные копии согласно политике хранения команды.

SECRETS Секретные переменные

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

Стратегия обновления системы

Планируйте обновления сами и сначала фиксируйте состояние среды

Узлы VMOwn работают 365 дней в году. Обновление системы — это изменение, инициируемое пользователем: выбирайте время, не влияющее на публикацию и сборку, и до начала проверьте совместимость цепочки инструментов.

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

Система и оборудование
Версия macOS, чип, унифицированная память, свободное место
Инструменты разработки
Xcode, инструменты командной строки, SDK, версии среды выполнения
Зависимости проекта
Lock-файлы менеджеров пакетов, среды Ruby, Python и Node
Конфигурация подписи
Состояние сертификатов, профили provisioning, список поиска Keychain
Автоматизированные задачи
Состояние runner, метки, рабочий каталог, последнее успешное задание
Материалы восстановления
Резервная копия кода, экспорт конфигурации, важные логи, идентификатор заказа
Перед изменением

Сначала запустите эталонный pipeline

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

Подготовить данные для диагностики
Изменение завершилось ошибкой

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

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

Создать обращение в консоли
Чек-лист диагностических данных

Помогите поддержке воспроизвести проблему в тех же условиях

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

Чек-лист вложений к обращению 6 ОБЯЗАТЕЛЬНЫХ ПОЛЕЙ
01

Узел и идентификатор заказа

Укажите фактический узел: Сингапур, Япония (Токио), Южная Корея (Сеул), Гонконг или запад США, а также идентификатор заказа из консоли.

02

Версии системы и инструментов

Зафиксируйте версии macOS, Xcode, инструментов командной строки и непосредственно связанных зависимостей; полный список ПО устройства не нужен.

03

Время возникновения и часовой пояс

Укажите время возникновения, продолжительность и часовой пояс. Для проблем с подключением добавьте местоположение локальной сети и её тип.

04

Первая содержательная ошибка

Сохраните необходимый контекст до и после ошибки; в первую очередь отправьте первое сообщение о сбое, а не только последнюю строку со статусом выхода.

05

Минимальные шаги воспроизведения

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

06

Что уже пробовали

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

Проблема не решена

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

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