Подключение / Toolchain / Диагностика

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

Это руководство посвящено подключению к выделенному физическому узлу: сначала проверьте адрес узла и системные учётные данные, затем настройте SSH, VNC, Xcode и CI runner. При возникновении неполадок проверяйте всё по порядку: сеть, аутентификация, система, toolchain и хранилище — так вы избежите бесполезных повторных попыток.

Способы подключения SSH / VNC
Системный интерфейс GUI / CLI
Тип ресурса Выделенный физический сервер
Работа узла 365 дней

01 / Первое подключение

Перед первым подключением проверьте пять категорий данных

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

  1. 01

    Адрес и регион узла

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

    Проверка: NODE ID / HOST / REGION / PORT

  2. 02

    Системная учётная запись

    Имя учётной записи чувствительно к регистру. Имя в SSH-команде, поле входа VNC и значение в консоли должны совпадать. Не заменяйте системное имя пользователя адресом электронной почты.

    Формат: username@host

  3. 03

    Временные учётные данные

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

    Действия: войти → заменить → безопасно сохранить

  4. 04

    SSH-клиент

    В macOS и большинстве сред Linux можно напрямую использовать терминал. Сначала проверьте доступность порта, затем запускайте SSH; при первом появлении отпечатка хоста проверьте адрес узла и только после этого подтвердите подключение.

    Рекомендуется: тайм-аут подключения 10 с / keep-alive 30 с

  5. 05

    Клиент общего экрана или VNC

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

    Стартовые параметры: 1920×1080 / 24-bit / адаптивный режим

Рекомендуемый порядок проверки:Сначала проверьте по SSH адрес, порт, учётную запись и учётные данные, затем подключайтесь к графическому интерфейсу. Если SSH работает, а VNC нет, круг поиска сразу сужается до графической службы, порта VNC и параметров клиента.

02 / Краткий глоссарий

Сначала согласуйте термины, затем сверяйте настройки

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

Физический узел
Аппаратное устройство Mac mini, на котором фактически работает macOS. Адрес, регион и идентификатор узла вместе обозначают предоставленный ресурс.
Выделенный
Один арендатор использует чип, память и накопитель всего устройства; экземпляр операционной системы не разделяется с другими арендаторами.
Облачный Mac
Mac на удалённом узле, доступный по сети. MiniDeploy предоставляет выделенный физический сервер, а не виртуальную машину.
VNC
Протокол передачи удалённого графического интерфейса, клавиатуры и указателя. На качество влияют задержка туда-обратно, разрешение, глубина цвета и объём изменений изображения.
SSH
Защищённый способ подключения для удалённой командной строки, синхронизации файлов и автоматизации; подходит для проверки среды, сборки и сбора журналов.
self-hosted runner
Исполнитель CI-задач, которым управляет команда. Позволяет зафиксировать версию Xcode, пути к кэшу и рабочему каталогу, а также зависимости сборки.
Toolchain
Набор Xcode, инструментов командной строки, менеджера пакетов, Ruby, fastlane, скриптов и переменных окружения, необходимых для сборки.
Задержка узла
Время прохождения данных туда-обратно между клиентом и узлом, обычно в миллисекундах. Чем меньше значение, тем быстрее обычно реагирует удалённый рабочий стол.

03 / Пример терминала

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

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

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

04 / Путь миграции

Три этапа миграции с локального Mac на облачный Mac

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

  1. ШАГ 01

    Синхронизация проекта и конфигурации

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

    • Запишите ветку репозитория и хеш коммита
    • Экспортируйте список версий зависимостей
    • Проверьте количество и размер ключевых файлов
    Условие приёмки Код извлекается, список зависимостей читается
  2. ШАГ 02

    Восстановление toolchain Xcode и подписи

    Зафиксируйте основную версию Xcode, путь к инструментам командной строки, версии Ruby и fastlane. Материалы подписи импортируйте через контролируемый процесс и проверьте права доступа и область действия.

    • Проверьте xcode-select -p
    • Зафиксируйте версии менеджера пакетов и скриптов
    • Выполните локальную Release-сборку
    Условие приёмки Один и тот же коммит стабильно архивируется
  3. ШАГ 03

    Подключение self-hosted runner

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

    • После регистрации выполните минимальную тестовую задачу
    • Проверьте попадание в кэш и правила очистки
    • Убедитесь, что журналы ошибок передаются обратно
    Условие приёмки Цикл «коммит — запуск — сборка — возврат результата» завершён

05 / Удалённый рабочий стол

Начните настройку удалённого Mac с низкой нагрузки

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

Демонстрация экрана macOS

Подходит для входа в графический интерфейс с Mac-клиента. Используйте адрес хоста и порт из консоли; учётная запись должна полностью совпадать с системной.

Начальное разрешение
1920×1080
Глубина цвета
24-bit
Рекомендуемая пропускная способность
≥ 15 Mbps
Рекомендация по взаимодействию
Сначала используйте адаптивное качество

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

Универсальный VNC-клиент

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

Начальное разрешение
1600×900
Глубина цвета при слабой сети
16-bit
Рекомендуемая пропускная способность
≥ 10 Mbps
Поддержание соединения
30–60s

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

Сценарий использования Начальное разрешение Глубина цвета Рекомендуемая пропускная способность Что настроить в первую очередь
Терминал и лёгкое редактирование 1600×900 16-bit ≥ 8 Mbps Уменьшить динамику изображения
Кодирование и отладка в Xcode 1920×1080 24-bit ≥ 15 Mbps Сохранить низкую задержку соединения
Разработка в нескольких окнах 2560×1440 24-bit ≥ 25 Mbps Сначала проверить стабильность
Частые изменения изображения 1920×1080 24-bit ≥ 30 Mbps Снизить частоту кадров или качество

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

06 / CI/CD

Сделайте runner воспроизводимым, а не просто однократно работающим

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

Регистрация

Регистрация runner

  • Используйте отдельную сервисную учётную запись
  • Разделяйте теги как минимум по архитектуре и версии Xcode
  • Установите параллелизм по умолчанию на 1, а после проверки нагрузки измените при необходимости
  • Регистрационный токен используйте только на этапе настройки
Workspace

Изоляция рабочего каталога

  • Для каждой задачи используйте отдельный каталог checkout
  • Храните исходный код, кэш, журналы и артефакты раздельно
  • После завершения задачи удаляйте временные файлы
  • Не позволяйте разным проектам совместно использовать доступные для записи файлы конфигурации
Cache

Стратегия кэширования

  • Включайте сводку lock-файлов зависимостей в ключ кэша
  • Задайте лимит размера кэша и условия его недействительности
  • При сбое попадания разрешайте полную пересборку
  • Не кэшируйте материалы подписи и краткосрочные учётные данные
Signing

Сертификаты сборки

  • Импортируйте только необходимые материалы для проекта
  • Ограничьте права файлов и список доступных учётных записей
  • Фиксируйте срок действия и проверяйте его заранее
  • Журналы задач не должны содержать конфиденциальные данные
Logs

Хранение журналов

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

Минимальная приёмочная задача

  • Выведите версии системы и Xcode
  • Загрузите зависимости и запустите модульные тесты
  • Создайте однозначно распознаваемый артефакт сборки
  • Очистите каталог и выполните задачу повторно
Граница ресурсов:Конфигурация M4 Core: Mac Mini M4, 16GB RAM, 256GB SSD. Параллельные задачи одновременно используют память, дисковый ввод-вывод и сеть. Перед подключением нескольких конвейеров измерьте пиковую нагрузку одной задачи, а не просто увеличивайте параллелизм.

07 / Дерево диагностики

Переходите к нужной ветке диагностики по симптомам

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

Не удаётся подключиться: определите, недоступен ли адрес или порт
  1. Проверьте в консоли состояние узла, адрес, регион и порт.
  2. Убедитесь, что локальная сеть не блокирует целевой порт; смена сети нужна только для сравнения, а не как постоянное решение.
  3. С помощью проверки порта определите тайм-аут, отказ или успешное установление соединения и запишите точное время.
  4. Если SSH и VNC недоступны, укажите номер узла, город клиента, оператора связи и результаты проверки.
  5. Если SSH доступен, а VNC нет, проверьте порт VNC, формат адреса назначения в клиенте и состояние графической службы.
Ошибка аутентификации: проверьте учётную запись, версию учётных данных и способ ввода
  1. Убедитесь, что используете имя системной учётной записи, а не адрес электронной почты, номер узла или имя устройства.
  2. Снова сверьте временные учётные данные с консолью; если пароль менялся, используйте обновлённые данные.
  3. Проверьте раскладку клавиатуры, регистр, пробелы в начале и конце и специальные символы; не копируйте данные из форматированного текста.
  4. При сбое аутентификации по ключу SSH проверьте, записан ли открытый ключ в правильную учётную запись, а также права каталога и файлов.
  5. После нескольких неудач прекратите попытки, запишите клиент, время и ответ системы, затем создайте обращение.
Изображение запаздывает: отличите высокую задержку, нехватку пропускной способности и фоновую нагрузку
  1. Сначала измерьте задержку туда-обратно от клиента до узла и некоторое время наблюдайте за скачками задержки и потерями пакетов.
  2. Приостановите синхронизацию кода, загрузку зависимостей и передачу больших файлов и проверьте, восстановился ли отклик.
  3. Снизьте разрешение до 1600×900, глубину цвета — до 16-bit, остальные параметры оставьте без изменений.
  4. Отключите динамический рабочий стол, прозрачность и окна с высокой частотой обновления, чтобы уменьшить объём изменений изображения.
  5. Если проблема возникает только в определённом клиенте, сравните поведение в другом клиенте и запишите версии.
Сбой сборки: сузьте поиск по версиям, зависимостям, правам и переменным окружения
  1. Выведите текущую версию Xcode, путь к инструментам командной строки, архитектуру и целевой SDK.
  2. Проверьте lock-файлы зависимостей, очистите производные данные проекта и выполните полную сборку.
  3. Сравните версии Ruby, fastlane, менеджера пакетов и скриптов локально и на узле.
  4. Проверьте права чтения и записи рабочего, временного каталогов и каталога артефактов.
  5. Сохраните первую фактическую ошибку и окружающие строки журнала, а не только итоговый код выхода.
Недостаточно места на диске: найдите растущий каталог и выполните обратимую очистку
  1. Проверьте свободное место на системном томе и подсчитайте по каталогам объём исходного кода, кэша, производных данных, данных симуляторов и архивов.
  2. Сначала удалите заново создаваемый кэш проекта и временные файлы неудачных задач.
  3. Ограничьте число сохраняемых рабочих каталогов CI, чтобы старые checkout и артефакты не накапливались.
  4. Синхронизируйте долгосрочные артефакты с командным хранилищем и удаляйте копию на узле только после проверки контрольной суммы.
  5. Если рабочая нагрузка постоянно превышает объём SSD 256GB, при заказе оцените дополнительное хранилище.

08 / Безопасность

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

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

Замените временные учётные данные

Сразу после первого входа установите новый надёжный пароль и сохраните его в одобренном командой менеджере учётных данных. Не передавайте пароли через журналы сборки или обычные документы.

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

Ограничьте область доступа SSH и VNC фактически используемыми командными IP-адресами. Обновляйте правила при изменении сетей участников и не сохраняйте временные источники для постоянного доступа.

Используйте учётные записи с минимальными правами

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

Удалите временные ключи

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

Границы обезличивания журналов:Можно сохранять номер узла, временные метки, названия команд, коды выхода и стек ошибок; удаляйте пароли, закрытые ключи, токены доступа, материалы подписи, полные переменные окружения и конфиденциальные рабочие данные проекта.

09 / Эскалация в поддержку

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

Технические вопросы лучше отправлять через тикет в консоли: это позволяет связать обращение с экземпляром и дополнять журналы. Если войти в консоль невозможно или нужно уточнить условия до покупки, отправьте электронное письмо.

Тикет в консоли

Для проблем с узлом и подключением

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

  • Номер узла и регион
  • Время возникновения с часовым поясом
  • Город клиента, сеть и способ подключения
  • Краткие шаги воспроизведения и ожидаемый результат
  • Обезличенный вывод команд и журналы
Войти в консоль и создать тикет
Электронная почта поддержки

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

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

  • Контактный адрес и часовой пояс
  • Масштаб и приоритет проблемы
  • Выполненные шаги диагностики
  • Время, когда вы готовы участвовать в проверке
  • Конкретные вопросы, требующие подтверждения
Перед отправкой Воспроизведите проблему и запишите точное время
При отправке Приложите номер узла и обезличенные журналы
После отправки Дополняйте информацию в том же тикете

Готовы подключиться

Данные узла готовы — начните подключение из консоли

Скопируйте адрес узла, системную учётную запись и текущие учётные данные, выполните проверку по SSH, затем откройте рабочий стол удалённого Mac. Если нужен новый выделенный физический сервер, посмотрите доступные модели и цены аренды.