Раздел инженерной поддержки

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

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

Маршрутизация проблемы

Начните с этапа, на котором появился симптом

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

Подключение

Отклонены учётные данные, порт недоступен, изображение отображается некорректно, ввод задерживается или сеанс прерывается.

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

Система

Графический сеанс, права доступа, подключение диска, настройки времени или состояние процессов не соответствуют ожиданиям.

Проверить состояние системы

Сборка

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

Проверить сборку

Сеть

Потери пакетов, джиттер, сбои DNS, изменения маршрута или нестабильная пропускная способность.

Открыть рабочую область диагностики

Хранилище

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

Проверить хранилище и данные

Аккаунт

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

Подготовить запрос в поддержку

Диагностика удалённого подключения

Проверяйте учётные данные, канал и сеанс по порядку

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

01

Проверьте данные активации и учётные данные

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

02

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

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

nc -vz "$TARGET_HOST" "$TARGET_PORT"
03

Проверьте состояние общего экрана

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

04

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

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

05

Завершите старые сеансы и подключитесь снова

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

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

Диагностика CI/CD

Определите, связана ли ошибка с Runner, средой или задачей

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

Runner

Регистрация и состояние онлайн

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

ps aux | grep -i runner
launchctl list | grep -i runner
Подпись

Среда подписи

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

security list-keychains
security find-identity -v -p codesigning
Кэш

Каталоги кэша

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

du -sh "$CACHE_PATH"
df -h
find "$CACHE_PATH" -maxdepth 1 -type d
Очередь

Очередь сборки

Зафиксируйте время постановки в очередь, фактического запуска и завершения, различая случаи «задача не получена» и «задача запущена, но долго не выводит данные». В первом случае проверяйте метки, параллельность и состояние Runner, во втором — ожидание скрипта, сетевые зависимости и дочерние процессы.

Логи

Сбор логов

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

xcodebuild -version
sw_vers
uname -m
Повтор

Повторная попытка после ошибки

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

Рабочая область диагностики сети

Выполняйте последовательные измерения для одной цели

Один ping не показывает качество канала. Соберите результаты во время проблемы и после восстановления, сохраняя одинаковые локальную сеть, адрес цели и параметры команды.

Задержка и потери пакетов

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

ping -c 20 "$TARGET_HOST"

Маршрут

Результат показывает, на каком переходе начинается изменение задержки. То, что некоторые маршрутизаторы не отвечают на проверку, не означает обрыв канала.

traceroute "$TARGET_HOST"

Запрос DNS

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

dig "$TARGET_HOST"
scutil --dns

Пропускная способность и отзывчивость

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

networkQuality -v
Трансграничные каналы зависят от маршрутов операторов и нагрузки локальной сети. Выбирайте узел не только по расстоянию по прямой: отдельно протестируйте доступные цели в Сингапуре, Японии (Токио), Южной Корее (Сеул) и Гонконге, затем учитывайте расположение команды и основные часы работы.

Работа с хранилищем и данными

Разделяйте исходный код, кэш, артефакты и резервные копии

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

Планирование рабочих каталогов

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

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

  • Создавайте отдельные копии исходного кода, баз данных, материалов подписи и артефактов, которые нельзя создать заново.
  • Регулярно проверяйте возможность чтения резервных копий: отметка «задача загружена» не заменяет тест восстановления.
  • Храните ключи и учётные данные в контролируемом хранилище, не записывайте их в репозиторий, логи сборки или общие каталоги.
  • До окончания срока аренды выполните экспорт и проверьте количество файлов, контрольные значения и читаемость на целевой стороне.

Обнаружение дополнительного SSD

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

diskutil list
df -h
mount

Проверки перед миграцией

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

Доступность сервиса

Оценивайте влияние по непрерывным измерениям

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

Целевая доступность
99.9%

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

Ежедневный статус за последние 90 дней 90 ДНЕЙ
Норма Есть записи о влиянии

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

Посмотреть условия сервиса

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

Предоставьте контекст, с которого можно начать диагностику

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

Шесть обязательных сведений

  1. 01
    Идентификатор заказа

    Укажите идентификатор заказа или экземпляра из панели управления. Не отправляйте пароль от аккаунта.

  2. 02
    Целевой узел

    Явно укажите Сингапур, Японию (Токио), Южную Корею (Сеул) или Гонконг.

  3. 03
    Время сбоя

    Укажите дату, часовой пояс, время начала, продолжительность и факт восстановления.

  4. 04
    Ожидаемый и фактический результат

    Отдельно опишите, что должно было произойти и что произошло на самом деле, а не только напишите «не работает».

  5. 05
    Шаги воспроизведения

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

  6. 06
    Обезличенные логи

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

Как обезличить логи?

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

Какие результаты нужно приложить к сетевой проблеме?

Как минимум приложите одну серию ping, один traceroute, время возникновения проблемы, целевой узел, локальный город и оператора, а также укажите, изменился ли результат после переключения на кабель, Wi‑Fi или мобильную точку доступа.

Нужно ли загружать весь проект при ошибке сборки?

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

Подготовить отправку

Приложите заказ, узел, временную шкалу и обезличенные логи

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