Маршрутизация инженерных вопросов

Сначала определите этап, затем устраните проблему с облачным Mac

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

01 / Первая активация

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

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

  1. 01

    Выберите модель из трёх конфигураций

    ZoneMini M4 Core M4, 16 ГБ памяти и SSD 256 ГБ — для лёгких сборок iOS и автоматизации одного проекта; ZoneMini M4 Plus M4, 24 ГБ памяти и SSD 512 ГБ — для повседневной разработки и конвейеров нескольких проектов; ZoneMini M4 Pro M4 Pro, 64 ГБ памяти и SSD 2 ТБ — для ресурсоёмкого вывода с большим объёмом памяти и параллельных задач высокой нагрузки. Все три конфигурации — выделенные физические Mac в облаке, а не виртуальные машины.

  2. 02

    Выберите расположение из пяти доступных узлов

    Доступны Сингапур, Япония (Токио), Южная Корея (Сеул), Гонконг и восток США. В первую очередь учитывайте расположение репозитория и основных пользователей, затем — рынок публикации и часовые пояса команды. Все пять узлов поддерживают три конфигурации; актуальный статус доступности отображается в консоли.

  3. 03

    Выберите период: день, неделя, месяц или квартал

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

  4. 04

    Оплатите в USD и проверьте заказ

    Поддерживаются только USDT-TRC20 и Visa / Mastercard / Amex (через Stripe). Перед отправкой проверьте название модели, узел, период, дополнительное хранилище, количество объединённых подключений Thunderbolt 5 и контактные данные. Актуальные доступные платёжные шлюзы отображаются в консоли.

  5. 05

    Получите данные для подключения и выполните первую проверку

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

Минимальные данные, которые стоит подготовить до активации

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

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

Последовательно исключайте причины — от состояния экземпляра до локальной сети

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

ПРОВЕРКА ПОДКЛЮЧЕНИЯ Шесть проверок по порядку
  1. 01

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

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

  2. 02

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

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

  3. 03

    Исключите ограничения локальной сети

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

  4. 04

    Проверьте порт SSH

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

  5. 05

    Проверьте настройки общего доступа к экрану

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

  6. 06

    Проверьте правила сетевого экрана

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

Проверка сети и портов
nc -vz <АДРЕС_УЗЛА> 22
ssh -vvv -o ConnectTimeout=10 ПОЛЬЗОВАТЕЛЬ@АДРЕС_УЗЛА
route -n get <АДРЕС_УЗЛА>

Замените заполнители адресом узла и именем пользователя из материалов поставки.

Как интерпретировать результат

Сначала отличите тайм-аут от ошибки аутентификации

Тайм-аут подключения
В первую очередь проверьте локальный выход в сеть, прокси, сетевой экран и доступность целевого порта.
Подключение отклонено
Зафиксируйте время, узел и полную строку ошибки; проверьте правильность адреса и порта назначения.
Ошибка аутентификации
Проверьте имя пользователя, путь к ключу, права файла и учётные данные поставки; не перебирайте пароли.
Изменился отпечаток хоста
Приостановите подключение и отправьте заявку на проверку; не удаляйте сохранённый отпечаток, чтобы продолжить работу.
Открыть полную инструкцию по подключению
03 / Среда сборки

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

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

A

Проверьте Xcode и инструменты командной строки

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

  • xcodebuild -version Получить фактическую версию инструмента сборки
  • xcode-select -p Получить текущий каталог разработчика
  • swift --version Проверить цепочку инструментов Swift
B

Проверьте сертификаты и профили подготовки

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

  • Проверьте Team, Bundle Identifier и способ подписи проекта
  • Убедитесь, что профиль подготовки в конфигурации сборки соответствует цели
  • Сравните доступные идентификаторы подписи в локальном и Runner-сеансах
C

Проверьте контекст доступа к связке ключей

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

  • Убедитесь, что пользователь выполнения совпадает с пользователем, импортировавшим материалы подписи
  • Проверьте, не меняет ли способ запуска Runner контекст сеанса
  • Удалите из журналов пароли, токены и пути к закрытым ключам
D

Изолируйте проблемы кэша зависимостей

Сначала убедитесь, что lock-файлы не изменились, затем отдельно проверьте зависимости CocoaPods, Swift Package Manager, Node.js или Flutter. При сбое кэша очищайте только каталоги текущего проекта, не удаляя сразу общий кэш команды на всём хосте.

  • Сохраните хэш lock-файла и результат разрешения зависимостей
  • Сравните версии зависимостей в неудачной и успешной ветках
  • Зафиксируйте владельца, права и текущий объём каталога кэша
E

Соберите воспроизводимый журнал архивации

Сохраните полную команду, рабочий каталог, Scheme, Configuration, SDK, Destination и код выхода. Журнал должен охватывать контекст до и после первой ошибки, а не только последнюю строку.

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

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

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

Получить консультацию по конфигурации сборки
Сбор сведений о среде сборки
sw_vers
xcodebuild -version
xcode-select -p
swift --version
xcodebuild -list -workspace <РАБОЧАЯ_ОБЛАСТЬ>

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

04 / Хранилище и объединение

Сначала определите назначение объёма, затем проверьте подключение и границы задач

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

Опубликованные цены на дополнительные хранилище и объединение
Дополнительная опция За день За неделю За месяц За квартал Подходящее применение
+1TB SSD $2 $5.5 $10.1 $27.5 Кэш зависимостей, артефакты сборки и материалы среднего объёма
+2TB SSD $4 $11 $20.2 $55 Файлы моделей, материалы пакетной обработки и большие рабочие наборы архивации
Объединение Thunderbolt 5 (за компьютер) $1.7 $4.6 $8.6 $23.4 Распределение задач между машинами и высокоскоростная совместная работа узлов с данными
Проверка подключения диска

Убедитесь, что система распознала целевой диск

Используйте diskutil list для просмотра дисков и разделов, затем выполните df -h для проверки фактической точки подключения и доступного места. Если устройство видно, но корректной точки подключения нет, сохраните вывод команды и отправьте заявку; не форматируйте неизвестный диск напрямую.

Контроль места

Одновременно отслеживайте общий объём и растущие каталоги

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

Распределение задач

Определите роль каждого хоста по входным данным, выполнению и артефактам

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

Проверка диска и кэша
diskutil list
df -h
du -sh ~/Library/Developer/Xcode/DerivedData
du -sh ~/Library/Caches

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

05 / Счета и оплата

Проверьте модель, период и дополнительные опции по номеру заказа

Все заказы ZoneMini оплачиваются в USD; поддерживаются только USDT-TRC20 и Visa / Mastercard / Amex (через Stripe). Актуальный доступный шлюз отображается в консоли. По вопросам счёта проверяйте конкретный заказ, а не отправляйте только снимок платежа или приблизительное время операции.

Валюта расчёта USD

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

Оплата цифровыми активами USDT-TRC20

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

Оплата банковской картой Visa / Mastercard / Amex

Карточные операции обрабатываются через Stripe. При сбое сохраните сообщение об ошибке из консоли, время и номер заказа; не отправляйте полные данные карты.

Почему итоговую сумму нужно проверять по модели, периоду и дополнительным опциям одновременно?

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

Какие данные сохранить, если платёж не завершён?

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

Через какой раздел проверить существующий заказ?

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

06 / Отправка заявок

Для обработки заявки нужны шесть категорий контекста

Цель заявки — не доказать, что «что-то не работает», а помочь поддержке определить масштаб, путь воспроизведения и ожидаемый результат. Соберите ключевые сведения в одном обращении, чтобы сократить число уточнений.

01

Узел

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

02

Модель

Укажите ZoneMini M4 Core, ZoneMini M4 Plus или ZoneMini M4 Pro, а не просто «хост M4».

03

Время возникновения

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

04

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

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

05

Обезличенный журнал

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

06

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

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

Удалите конфиденциальные данные перед отправкой

Не загружайте закрытые ключи сертификатов, токены репозитория или полные пароли

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

  • В вопросах счёта укажите номер заказа
  • В вопросах подключения приложите вывод команд и сведения о клиенте
  • В вопросах сборки приложите версию Xcode, Scheme, код выхода и ключевые фрагменты журнала
  • В вопросах хранилища приложите точку подключения, объём и рост соответствующих каталогов
Когда диагностические данные готовы

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

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