Аккаунт панели управления
Убедитесь, что сотрудник, оформляющий заказ, может войти в панель и просматривать заказы, счета, узлы и состояние устройства. Технический руководитель должен знать, кто отправляет обращения и продлевает аренду.
Это руководство охватывает подготовку, выбор одной из двух конфигураций выделенного физического Mac, четыре узла, первый вход по SSH и проверку сборки Xcode. Выполняйте шаги по порядку.
До оформления заказа определите ответственных за подключение, сборку и управление доступом. Это уменьшит количество уточнений после получения устройства. У каждого из пяти пунктов должен быть ответственный.
Убедитесь, что сотрудник, оформляющий заказ, может войти в панель и просматривать заказы, счета, узлы и состояние устройства. Технический руководитель должен знать, кто отправляет обращения и продлевает аренду.
Подготовьте согласованный командой открытый ключ Ed25519 и отправьте только его содержимое. Закрытый ключ храните на контролируемом устройстве или в системе управления ключами; не передавайте его по почте, через обращения или репозиторий.
Определите целевую версию Xcode по проекту, конфигурации CI и зависимостям, а также зафиксируйте минимальную версию macOS. Не пишите просто «последняя версия» — укажите проверяемый номер.
Убедитесь, что узел может читать нужные репозитории с ограниченным ключом развертывания или краткосрочным токеном. Сначала определите минимальный набор прав, затем решите, нужен ли доступ на запись артефактов или статуса.
Если нужны графические операции, заранее подготовьте клиент VNC или общего доступа к экрану macOS. Для автоматизации, диагностики и работы с файлами в первую очередь используйте SSH, снижая зависимость от графической сессии.
Обе конфигурации используют физические узлы Apple Silicon с выделенным физическим Mac, а не виртуальные машины. В каталог входят Сингапур, Токио, Сеул и Гонконг; фактическая доступность определяется в реальном времени панелью при оформлении заказа.
M4 · 16 ГБ RAM · SSD 256 ГБ
Подходит для одного конвейера сборки iOS, обычной компиляции macOS, проверки зависимостей и постоянно работающего лёгкого self-hosted runner.
Как выбрать: Сначала измерьте пиковое потребление памяти и рабочий набор диска при чистой сборке, затем добавьте запас для кэша зависимостей, журналов и артефактов.
M4 · 24 ГБ RAM · SSD 512 ГБ
Подходит командам с большими рабочими областями Xcode, параллельными тестами, контейнерными нагрузками и потребностью хранить больше кэша сборки и артефактов.
Как выбрать: Если runner одновременно компилирует, запускает тесты в симуляторе и обрабатывает зависимости, в первую очередь проверьте пиковое потребление памяти и скорость роста кэша.
Выбирайте узел ближе к основным разработчикам, источнику кода или точке автоматического запуска. Не ограничивайтесь одним ping — оценивайте стабильность в рабочие часы и качество удалённого рабочего стола.
Аренда доступна на день, неделю, месяц или квартал. Для краткой проверки выберите срок по предполагаемой длительности тестов; для стабильного конвейера сопоставьте срок с графиком релизов и ответственностью за продление.
В заказе отдельно указаны базовая конфигурация, срок, узел и дополнительные опции. Все цены и расчёты выполняются в долларах США (USD); перед оплатой оформляющий заказ должен ещё раз всё проверить.
Сверьте сеть, сумму и идентификатор заказа с данными оплаты в панели. Перед переводом убедитесь, что используется сеть TRC20, а после отправки сохраните запись транзакции для сверки.
Оплата картой обрабатывается через Stripe. После возврата со страницы оплаты проверьте в панели статус заказа и сумму счёта; не считайте страницу возврата в браузере подтверждением выдачи устройства.
Название тарифа, чип M4, объём памяти и базовый SSD должны соответствовать выбранной конфигурации.
Убедитесь, что выбран день, неделя, месяц или квартал, и не перепутайте тестовый срок с длительной арендой.
Убедитесь, что Сингапур, Токио, Сеул или Гонконг соответствует плану подключения.
Проверьте расширение SSD и количество объединений Thunderbolt 5, затем выполните оплату.
Фактически доступный платёжный шлюз определяется панелью управления. Завершённая оплата ещё не означает, что устройство уже доступно для подключения: проверьте статус заказа и данные получения.
После перехода устройства в состояние доступности прочитайте адрес, данные аккаунта и срок аренды. Не используйте сообщения в чате, старые снимки экрана или данные подключения из другого заказа.
Все поля должны относиться к одному заказу. Если узел, адрес или срок не совпадают с ожиданиями, остановите подключение и отправьте обращение через панель.
Продолжайте проверять статус заказа в панели. Срок получения определяется временем подтверждения в панели; не пытайтесь многократно подключаться по ещё не выданному адресу.
При отправке обращения укажите идентификатор заказа, ожидаемый узел, текущее состояние устройства и время обнаружения проблемы. Не прикладывайте пароль, закрытый ключ или полные платёжные данные.
При первом подключении по SSH важно не сразу устанавливать зависимости, а убедиться, что адрес, отпечаток хоста, пользователь и сведения об оборудовании относятся к текущему заказу.
$ export ZOOMMINI_HOST=assigned-host
$ ssh-keyscan -t ed25519 "$ZOOMMINI_HOST" | ssh-keygen -lf -
256 SHA256:7qV3mL9kR2nF4cX8 assigned-host (ED25519)
$ ssh build@"$ZOOMMINI_HOST"
Last login: remote session
build@zoommini-node ~ %
$ sw_vers
ProductName: macOS
ProductVersion: 15.2
BuildVersion: 24C101
$ system_profiler SPHardwareDataType
Hardware:
Model Name: Mac mini
Chip: Apple M4
Memory: 16 GB
$ uname -m
arm64
Запишите назначенный адрес во временную переменную окружения или SSH config, чтобы не допустить ошибки в истории команд. При нестандартном порте также сохраните параметр порта.
Посимвольно сравните отпечаток Ed25519, полученный локально, с записью о выдаче. При несовпадении остановите подключение и не принимайте изменившуюся запись автоматически.
sw_vers используется для проверки версии macOS,system_profiler для проверки чипа и памяти,uname -m должна вернуть arm64.
Сначала проверьте выбранную версию Xcode, затем выполните сборку проекта и запустите автоматические тесты. Сохраняйте коды выхода и ключевые журналы каждого шага, а не судите об успехе только по интерфейсу.
$ xcodebuild -version
Xcode 16.2
Build version 16C5032a
Версии Xcode и сборки соответствуют матрице проекта, код выхода команды равен 0.
$ xcodebuild -scheme App build
Prepare packages
CompileSwiftSources normal arm64
Ld App normal arm64
** BUILD SUCCEEDED **
В конце вывода появляется BUILD SUCCEEDED, при этом отсутствуют ошибки подписи, зависимостей или свободного места на диске.
$ fastlane ios test
Resolving Swift Package Manager dependencies
Test Suite 'All tests' passed
Executed 48 tests, with 0 failures
fastlane.tools finished successfully
Количество тестов соответствует ожиданиям, число ошибок равно 0, fastlane завершился штатно, а код выхода процесса равен 0.
Сначала выполните xcode-select -p чтобы узнать текущий каталог разработчика, затем переключите его по матрице версий команды. Не изменяйте файлы проекта, пытаясь обойти проблему версии.
Проверьте права репозитория, путь менеджера пакетов и доступ к сети. Перед очисткой кэша сохраните журнал ошибки, чтобы не потерять исходные сведения о сбое.
Проверьте способ загрузки сертификатов, профилей подготовки и прав runner. Секреты должны передаваться контролируемой системой управления ключами, а не записываться в скрипты и журналы сборки.
Успешная приёмка означает только то, что цепочка инструментов работает. Перед подключением к CI/CD обновите учётные данные, настройте открытые ключи, отзовите лишние права и задайте runner минимальные разрешения.
Согласно инструкции по выдаче замените первоначальные учётные данные, если это требуется. Используйте уникальный контролируемый пароль и не применяйте его повторно на локальном компьютере, в репозитории или на других узлах.
Настройте отдельные открытые ключи для пользователей и автоматизированных идентификаторов, которым нужен доступ. Не позволяйте нескольким людям использовать один закрытый ключ; комментарий к открытому ключу должен указывать его назначение.
Удалите открытые ключи, токены репозиториев, права администратора и разрешения удалённого рабочего стола, временно добавленные во время тестирования. Доступ участников, покинувших команду, и отключённых runner следует отозвать немедленно.
Разрешите runner только чтение необходимых репозиториев, выполнение заданных скриптов и запись в указанные места хранения артефактов. Не выдавайте по умолчанию права администратора системы или токены для разных проектов.
Перед добавлением узла в рабочее расписание должны одновременно выполняться пять условий: поля заказа совпадают, отпечаток SSH проверен, характеристики системы совпадают, сборка и тесты завершились с кодом 0, временные права отозваны.
Сначала выберите конфигурацию, узел и срок. Когда устройство станет доступно, последовательно проверьте отпечаток, систему, сборку и права доступа.