Поиск по командам и ключевым словам ошибок

От подключения к узлу до готового iOS-билда.

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

Сейчас показано 8 точек входа.

RUNBOOK / OAK-06 Индекс проверки узла сборки
01
ПодключениеSSH · VNC · Демонстрация экрана
Проверить
02
Среда сборкиXcode · активы подписи · кэш
Проверить
03
Выполнение задачиметки runner · изолированные каталоги
Проверить
04
Результаты поставкиarchive · export · logs
Архивировать
Принцип диагностики Меняйте только одну переменную за раз

Выберите журнал по симптомам

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

CONNECTION

Первое подключение и проверка локальной среды

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

BUILD

Автоматическая архивация и экспорт iOS

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

AUTOMATION

Подключение CI/CD runner

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

DISPLAY

Настройка удалённого экрана

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

GLOSSARY

Термины среды сборки

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

DIAGNOSTICS

Диагностика командами

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

ESCALATION

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

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

STORAGE

Проверка места под кэш и результаты

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

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

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

Рекомендуемый порядок · 4 пункта

Проверка первого входа

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

  1. 01

    Считайте актуальные данные подключения из консоли

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

  2. 02

    Сначала проверьте базовый канал через SSH

    Выполните ssh -v user@host и проверьте этапы разрешения адреса, рукопожатия и аутентификации. Если тайм-аут возникает до установления соединения, проверьте локальную сеть и порт; при ошибке аутентификации проверьте имя пользователя и актуальные учётные данные.

  3. 03

    Выберите графическое подключение под задачу

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

  4. 04

    Завершите проверку первого входа

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

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

Воспроизводимая сборка iOS требует фиксированных инструментов, точки входа проекта, активов подписи, параметров архивации и места экспорта. Записи «сборка не удалась» недостаточно для повторной проверки.

01 / TOOLCHAIN

Зафиксируйте инструменты командной строки Xcode

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

02 / SIGNING

Разделите сертификаты, ключи и профили

Ограничивайте доступ к активам подписи по проекту и среде. После импорта выполните security find-identity -v -p codesigning для проверки доступных идентификаторов; не выводите пароли сертификатов в логи конвейера.

03 / ARCHIVE

Явно задайте workspace, scheme и путь к архиву

Скрипт должен явно указывать workspace или project, общую scheme, configuration и -archivePath. На машине сборки не полагайтесь на временный выбор в графическом интерфейсе Xcode, сделанный ранее.

04 / EXPORT

Сохраняйте результаты экспорта вместе с логами

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

BUILD RECORD Шаблон команды архивации
xcodebuild \
  -workspace App.xcworkspace \
  -scheme App \
  -configuration Release \
  -archivePath "$PWD/output/App.xcarchive" \
  clean archive
Входные данныеидентификатор коммита, lock-файлы зависимостей, версия Xcode, scheme
Результатыкаталог архива, каталог экспорта, исходные логи, номер задачи
Сохранить при ошибкекод выхода, первый фрагмент ошибки, версии среды; не сохранять секретные значения

Регистрация runner — только начало: долгосрочную работу определяют правила изоляции

Узлы OakVM — выделенные физические машины, а не виртуальные машины. Параллелизм масштабируется добавлением выделенных узлов; даже на одном узле необходимо чётко разделять очередь, метки и рабочие каталоги задач.

GITHUB ACTIONS

Направляйте проекты на нужные узлы с помощью меток

  • Создайте self-hosted runner на уровне репозитория или организации и зафиксируйте его область регистрации.
  • Используйте метки региона, чипа и назначения, например разделяйте релиз проекта и ежедневные тесты.
  • Workflow сопоставляется через runs-on точно; не используйте универсальные метки с неоднозначным смыслом.
  • После завершения задачи удаляйте временные связки ключей, каталоги и переменные среды, нужные только для текущего запуска.
GITLAB CI

Ясно укажите область runner и метки задач

  • Проверьте, принадлежит ли runner экземпляру, группе или проекту, чтобы посторонние проекты не получили возможность выполнения.
  • Указывайте tags в задании и отключайте приём задач без меток, если он не нужен.
  • Задайте ключи кэша на уровне проекта, чтобы разные ветки или приложения не использовали несовместимые результаты.
  • Сохраняйте номер задания, идентификатор коммита и имя runner для связи с логами узла.
GENERIC RUNNER

Сначала определите жизненный цикл универсального runner

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

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

Проверяйте проблему от нагрузки изображения к сетевому каналу

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

  1. 01

    Снизьте разрешение

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

    Проверьте указатель и перемещение окон
  2. 02

    Уменьшите цветность и динамический контент

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

    Сравните статичное и динамичное изображение
  3. 03

    Скорректируйте ожидаемую частоту кадров

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

    Запишите изменение задержки ввода
  4. 04

    Проверьте сетевой джиттер

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

    Сохраните сводку образцов
  5. 05

    Проверьте способ совместной работы команды

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

    Укажите текущего оператора

Сначала согласуйте термины, затем обсуждайте конфигурацию и границы

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

Физический узел
Физическое устройство Apple Silicon, напрямую выполняющее macOS и задачи сборки; это вычислительная единица, соответствующая заказу.
Выделенный ресурс
В течение срока аренды вычислительные ресурсы узла используются текущим заказом и не разделяются с задачами других клиентов на той же физической машине.
Облачный Mac
Среда Mac в дата-центре, доступная по сети для графической работы, сборки из командной строки и автоматизации.
Не виртуальная машина
В заказ входит выделенная физическая машина, а не виртуальный вычислительный экземпляр, разделённый с общего хоста.
VNC
Один из способов удалённо просматривать и управлять графическим интерфейсом macOS; качество зависит от разрешения, изменений изображения и сетевого джиттера.
self-hosted runner
Агент выполнения, зарегистрированный на платформе CI/CD и запускающий задачи конвейера на собственном или арендованном узле.
Кэш сборки
Данные, сохраняемые для сокращения повторных загрузок или компиляции, например кэш зависимостей и DerivedData; кэш должен допускать удаление и пересоздание.
Активы подписи
Сертификаты, закрытые ключи, профили и связанные разрешения, необходимые для подписи приложения; ими следует управлять по принципу минимальных привилегий.

Для каждой проверки фиксируйте команду, ожидаемый вывод и варианты ошибок

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

Командный чек-лист типичных проблем облачного Mac
Объект проверки Команда или действие Ожидаемый результат Вариант ошибки
Разрешение сети и доступность ping -c 20 host
ssh -v user@host
Адрес разрешается одинаково; в образцах нет постоянных потерь; SSH доходит до рукопожатия и аутентификации. При ошибке разрешения проверьте адрес; при тайм-ауте до соединения повторите тест через другой локальный канал; при ошибке аутентификации проверяйте только актуальные имя пользователя и учётные данные.
Диск и место под сборку df -h
du -sh ~/Library/Developer/Xcode/DerivedData
На целевом томе достаточно места для исходников, зависимостей, архива и экспорта; размер кэша не превышает командный порог. Сначала перенесите результаты, которые нужно сохранить, затем удалите пересоздаваемый кэш проекта; не удаляйте архивы с неизвестным владельцем.
Инструменты Xcode xcode-select -p
xcodebuild -version
Каталог разработчика и версия совпадают с записями конвейера; команды завершаются успешно. При ошибке пути явно переключите набор инструментов; при несовпадении версии остановите задачу, чтобы не получить несопоставимые архивы.
Проект и scheme xcodebuild -list -workspace App.xcworkspace Целевая scheme видна и опубликована для автоматизации. Если список пуст, проверьте рабочий каталог и генерацию зависимостей; если scheme не видна, проверьте общие настройки проекта и регистр имени.
Идентификатор подписи security find-identity -v -p codesigning Идентификатор подписи текущей задачи доступен; вывод не содержит неоднозначности из-за недействительных или дублирующихся вариантов. При отсутствии идентификатора проверьте область импорта, доступ к связке ключей и соответствие профиля; не публикуйте закрытый ключ или пароль.
Архивация и экспорт Сохраните xcodebuild код выхода, путь к архиву и лог экспорта. Каталог архива существует; результат экспорта связан с идентификатором коммита и номером задачи. Начните диагностику с первого error в логе; отдельно определяйте этап компиляции, подписи, архивации и экспорта, не описывайте весь сбой последней строкой.
RULE 01

Меняйте одну переменную за раз

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

RULE 02

Сохраняйте первую значимую ошибку

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

RULE 03

Обезличивайте логи перед публикацией

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

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

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

SUPPORT PACKET Рекомендуется указать 6 сведений
01Регион узла

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

02Время события

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

03Номер задачи

Укажите идентифицируемый номер заказа, экземпляра или задачи CI.

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

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

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

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

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

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

Выделенная физическая машина · не виртуальная машина · расчёты в USD

Нужен облачный Mac для подключения к существующему конвейеру?

Выберите OakVM M4 или OakVM M4 Pro и настройте срок аренды в одном из шести доступных регионов узлов. Все регионы стабильно работают 365 дней в году; фактическая доступность отображается в консоли в реальном времени.