Техподдержка облачного Mac

Сначала определите источник сбоя, затем опишите его для поддержки

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

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

6 категорий Подключение, сборка, подпись, сеть, оплата и узлы
6 пунктов Подготовьте полный контекст обращения
Круглогодичная работа Узлы работают 365 дней в году
Описание проблемы От симптома к шагам воспроизведения
Полные сведения попадут в очередь обработки
01

Определите масштаб сбоя

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

Состояние устройства
Проверьте текущий статус в консоли
Выбранный узел
Укажите регион из заказа
02

Определите уровень проблемы

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

Минимальный сценарий
Запишите стабильные шаги воспроизведения
Время сбоя
Укажите первый и последний случаи
03

Передайте необходимые данные

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

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

Шесть категорий — шесть наборов нужных данных

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

Не удаётся подключиться

Проверьте, недоступно ли устройство или неверны данные доступа

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

Подготовьте: узел, исходную сеть, ошибку и время
Сбой сборки

Определите этап, на котором произошёл сбой

Укажите версии Xcode и Command Line Tools, используемый файл блокировки, команду с ошибкой, целевую схему, свободное место на диске и первую существенную ошибку в логе.

Подготовьте: версии, команду, этап и логи без секретных данных
Проблема с подписью

Проверьте сертификат, профиль и настройки цели

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

Подготовьте: цель, идентификатор, статус и ошибку
Проблемы с сетью

Отдельно проверьте задержку и фактическую скорость загрузки

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

Подготовьте: оператора, тип сети, измерения и цель
Вопрос по оплате

Сверьте базовую конфигурацию и дополнительные позиции заказа

Укажите номер заказа, срок аренды, базовую конфигурацию и названия позиций SSD или Thunderbolt 5. Не указывайте в обращении полные платёжные данные.

Подготовьте: заказ, срок, конфигурацию и дополнения
Перенос на другой узел

Укажите причину переноса и объём передаваемых данных

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

Подготовьте: текущий узел, направление и данные
Диагностика подключения

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

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

01

Проверьте состояние устройства

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

02

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

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

03

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

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

04

Проверьте сеанс VNC

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

05

Проверьте локальный брандмауэр

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

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

Диагностика сборки

Проверьте версии инструментов и найдите первую существенную ошибку

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

01

Xcode и целевой SDK

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

02

Command Line Tools

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

03

Зависимости и файл блокировки

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

04

Сертификаты и профили

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

05

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

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

06

Временные метки и этап сбоя

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

CI/CD

Зарегистрируйте отдельный физический Mac как контролируемый self-hosted runner

CDNMac M4 подходит для сборок iOS, запускаемых из репозитория. При подключении к GitHub Actions, GitLab CI, Jenkins или другой системе планирования задач рассматривайте узел как постоянно доступную машину для сборки, а не как временный контейнер.

  • Создайте отдельный рабочий каталог для каждого репозитория. Не используйте повторно неочищенный кэш сборки разных проектов.
  • Выдавайте токенам только минимальные права, необходимые для выполнения задач, и настройте отдельные токены для разных репозиториев.
  • Храните данные для подписи в защищённом месте. Не допускайте вывода ключей, токенов и паролей сертификатов в логах CI/CD.
  • После выполнения задачи удаляйте временные файлы, производные данные и ненужные копии артефактов.
  • Настройте для runner понятные метки, чтобы на это устройство не назначались несовместимые задачи.
Карточка передачи задачи сборки RUNNER / M4
A1

Примите доверенную задачу

Проверяйте репозиторий, ветку и метку runner перед назначением задачи.

Очередь
B2

Установите зависимости

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

Рабочая область
C3

Выполните Archive

Зафиксируйте путь к Xcode, scheme, configuration и параметры экспорта.

Архив
D4

Передайте результат и очистите среду

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

Артефакты
Изоляция: репозиторий Доступ: минимальные права Очистка: после выполнения задачи
Краткий словарь

Восемь терминов для общей картины диагностики

Единые термины в обращении помогут быстрее различить физическое устройство, протокол доступа, исполнитель CI/CD и итоговые файлы сборки.

Облачный Mac
Устройство Mac, которым удалённо пользуются через сеть. CDNMac предоставляет отдельный физический компьютер, который не используется совместно с другими заказами.
Физический узел
Местоположение устройства и его подключения к сети. Выбор региона влияет на маршрут соединения, но сам по себе не определяет общее время сборки.
Отдельное устройство
Ресурсы и среда доступа одного устройства выделены под один заказ, вычислительные мощности не распределяются между несколькими арендаторами.
Не виртуальная машина
Рабочие нагрузки выполняются на реальном оборудовании Mac, а не в нескольких виртуальных экземплярах, созданных на одном хосте.
VNC
Способ удалённого доступа к графическому интерфейсу macOS. Подходит для проверки состояния экрана и выполнения действий в интерфейсе.
SSH
Защищённое подключение для командной строки, скриптов и передачи файлов. Подходит для автоматизации и повседневного управления системой.
self-hosted runner
Исполнитель задач, подключённый к системе непрерывной интеграции и управляемый вашей командой. Он получает и выполняет задачи CI/CD на выбранном облачном Mac.
Артефакты сборки
Файлы и необходимые логи, созданные при компиляции, архивировании или экспорте. Скопируйте их в хранилище под контролем команды и настройте срок хранения.
Перед отправкой обращения

Подготовьте шесть пунктов и отправьте обращение через консоль

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

01

Номер заказа

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

02

Выбранный узел

Укажите текущий узел устройства, а не только «Азия» или «США». Если нужен перенос, дополнительно укажите целевое направление подключения.

03

Время сбоя

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

04

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

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

05

Логи без секретных данных

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

06

Ожидаемый результат

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

Границы поддержки

С чем мы помогаем, а что остаётся под управлением команды

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

Состояние оборудования и сети

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

Помощь CDNMac

Помощь с доступом к системе

Мы поможем выяснить, доступно ли устройство, соответствуют ли данные доступа этому устройству и на каком уровне возникла проблема SSH или VNC: сеть, аутентификация или сеанс.

Помощь CDNMac

Рекомендации по диагностике сборки

По логам мы поможем проверить Xcode, Command Line Tools, свободное место и этап сборки. Зависимости проекта и скрипты должна проверить команда проекта.

Совместная диагностика

Проект и данные разработчика

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

Зона ответственности пользователя
Важно для безопасности

Учитывайте доступы, данные подписи и артефакты сборки в едином процессе завершения работы

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

01

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

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

02

Регулярно обновляйте данные доступа

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

03

Удаляйте устаревшие сертификаты

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

04

Заранее сохраните нужные артефакты

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

Уже воспроизвели проблему? Отправьте обращение через консоль с полным контекстом

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