1. Облачные серверы
  2. Поддержка
04 Support

Подключение по SSH, сборка в Xcode и настройка Runner: документация поддержки

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

Quick Start

Быстрый старт за три шага

В среднем через 5 минут после заказа приходит письмо с учётными данными. Следуйте трём шагам ниже — первое подключение займёт не больше 3 минут.

01

Письмо с учётными данными

В письме указаны адрес узла (например, hk1.oncemini.com), порт SSH 22, логин dev, начальный пароль и пароль VNC. Не пришло — проверьте папку «Спам», затем страницу с деталями инстанса в панели управления.

02

Первый вход по SSH и смена пароля

Выполните ssh -p 22 dev@адрес_узла, сразу после входа запустите passwd и смените начальный пароль. Дальше рекомендуем загрузить публичный ключ через ssh-copy-id и отключить вход по паролю.

03

Подключение к графическому интерфейсу через VNC

Через встроенный Screen Sharing в macOS или любой VNC-клиент подключитесь к адрес_узла:5900 и введите пароль VNC — откроется полноценный рабочий стол macOS. Первое сопряжение с Xcode и подтверждение системных всплывающих окон делаются именно здесь.

Права root входят в поставку сразу: sudo доступен без ограничений, системные настройки можно менять как угодно. Если что-то сломается — не страшно: в панели управления можно самостоятельно переустановить macOS, инструкция ниже.
Terminal

От входа до загрузки в App Store: полная цепочка

Ниже — фрагмент реального вывода на узле в Гонконге, машина Mini M (M4 / 24 ГБ): вход по SSH, сборка в Xcode, загрузка в App Store Connect через fastlane. Команды справа можно скопировать одним щелчком.

dev@mini-hk1 — zsh — 96×28
ssh -p 22 dev@hk1.oncemini.com
Last login: Mon Jul 27 09:12:33 2026 from 203.0.113.24
sw_vers
ProductName:    macOS
ProductVersion: 15.5
BuildVersion:   24F74
xcodebuild -scheme App -configuration Release -destination 'generic/platform=iOS' build
▸ Compiling AppDelegate.swift
▸ Linking App
▸ Signing App.app
** BUILD SUCCEEDED ** [128.4s]
bundle exec fastlane release
[10:24:08] Login to App Store Connect (API key)
[10:26:41] Upload progress: 100%
Successfully uploaded package to App Store Connect
dev@mini-hk1 ~ % 

Частые команды · нажмите для копирования

ssh -p 22 dev@hk1.oncemini.com
passwd
ssh-copy-id -i ~/.ssh/id_ed25519.pub dev@hk1.oncemini.com
sudo xcode-select -s /Applications/Xcode_16.4.app
xcodebuild -scheme App -configuration Release build
security unlock-keychain login.keychain-db

Замените hk1 на префикс вашего узла — домены всех узлов указаны на странице «Регионы». Скрипт CI, который у вас работает локально, здесь запустится без изменений.

Guides

Инструкции по частым задачам

Четыре самых частых вопроса — выполняйте шаги по порядку. Каждая инструкция проверена на реальном оборудовании.

Несколько версий Xcode и переключение между ними

  1. В образе предустановлены две стабильные версии Xcode, названные по номеру версии: /Applications/Xcode_16.4.app и /Applications/Xcode_15.4.app.
  2. Проверить активную версию: xcodebuild -version.
  3. Глобальное переключение: sudo xcode-select -s /Applications/Xcode_15.4.app.
  4. В CI глобальные настройки лучше не трогать — задайте версию через переменную окружения на один запуск: DEVELOPER_DIR=/Applications/Xcode_16.4.app xcodebuild ….
  5. Нужна другая версия (включая бета) — укажите номер в тикете. Библиотека предустановок покрывает все релизные версии начиная с 15.0, обычно доставляется на машину в течение 2 часов в рабочее время.

Настройка self-hosted runner для GitHub Actions

  1. В репозитории: Settings → Actions → Runners → New self-hosted runner, выберите ОС macOS и архитектуру ARM64.
  2. Скачайте и распакуйте пакет runner по командам со страницы, затем выполните ./config.sh --url … --token … для регистрации.
  3. Зарегистрируйте как постоянную службу: ./svc.sh install && ./svc.sh start — launchd поднимет её автоматически после перезагрузки машины.
  4. В workflow укажите runs-on: [self-hosted, macOS, ARM64]; при нескольких машинах рекомендуем добавлять собственные label для различения.
  5. Ориентир по параллельности: Mini M (24 ГБ) стабильно выдерживает 2 параллельных job; для большей нагрузки берите Mini Pro (64 ГБ) — см. тарифы аренды.

Удалённая отладка на реальном устройстве

  1. Если тестовый iPhone и облачный Mac не в одной локальной сети, сначала объедините их в один сегмент с помощью WireGuard или другого инструмента.
  2. Первое сопряжение выполняется в окне Devices and Simulators в Xcode — достаточно один раз сделать это через графический интерфейс по VNC.
  3. При сопряжении включите отладку по сети — после этого xcodebuild -destination 'platform=iOS,name=имя_устройства' будет напрямую указывать на реальное устройство.
  4. Если нужны только модульные тесты и UI-тесты в симуляторе, реальное устройство не требуется — всё работает сразу после поставки, без настройки сети.

Переустановка macOS

  1. Войдите в панель управления → Детали инстанса → Переустановка системы, выберите одну из двух версий: macOS 14 или 15.
  2. Переустановка полностью и безвозвратно очищает диск — сначала скачайте снапшот из панели управления.
  3. Процесс полностью самостоятельный, в среднем через 10 минут машина готова к входу, новые учётные данные генерируются автоматически и приходят по почте.
  4. Без ограничения по количеству раз и без дополнительной платы. Подходит, если систему «сломали», хотите перейти на другую большую версию или хотите вручную очистить диск перед завершением аренды.
Glossary

Краткий словарь терминов

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

Dedicated hardware (физический сервер)
Целая физическая машина Mac mini передаётся вам напрямую, операционная система работает на реальном железе без слоя виртуализации — производительность без потерь.
Эксклюзивное выделение
Машина в любой момент времени принадлежит только одному арендатору. Процессор, память, SSD и канал 1 Гбит/с не делятся ни с кем.
VNC
Протокол удалённого графического интерфейса. После подключения вы видите полноценный рабочий стол macOS — через него выполняется сопряжение устройств и подтверждение системных диалогов.
self-hosted runner
Исполнитель CI, зарегистрированный на вашей собственной машине. Задачи GitHub Actions / GitLab CI для macOS выполняются прямо на этом Mac, без очереди на официальных раннерах.
Unified Memory (единая память)
CPU и GPU в Apple Silicon используют один общий пул памяти. Модель с 64 ГБ позволяет загружать крупные квантованные модели без ограничений отдельной видеопамяти.
Apple Silicon
Собственные чипы Apple на архитектуре ARM (на нашей платформе — M4 / M4 Pro). Естественная цель для сборки на реальных устройствах iOS, экспериментов с MLX и CoreML.
Снапшот
Образ-архив всех данных на диске. Можно создать и скачать в любой момент через панель управления — страховка перед переустановкой, окончанием аренды или сменой узла.
SLA
Гарантия доступности сервиса, у нас — 99.9%. При недостижении показателя предусмотрена компенсация по установленной методике, подробности на странице «Надёжность и безопасность».
Troubleshoot

Чек-лист самодиагностики

На три типа проблем приходится около 70% всех тикетов. Проверяйте по порядку — в большинстве случаев причина находится уже на 2–3 шаге.

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

  1. В панели управления убедитесь, что статус инстанса running, индикатор питания в норме.
  2. Локально выполните ping / mtr для домена узла; при высоком проценте потерь смените сеть или проверьте маршрут через тестовый IP на странице «Регионы».
  3. Проверьте порт 22 и имя пользователя dev; запустите ssh -v и посмотрите, на каком этапе handshake останавливается.
  4. Если сами меняли sshd_config и оказались «заблокированы»: принудительно перезапустите инстанс в панели управления, затем через VNC войдите на рабочий стол и откатите настройки.
  5. Если проблема осталась: приложите к тикету полный вывод ssh -vvv.

Ошибка подписи при сборке

  1. Ошибка errSecInternalComponent или сбой доступа к связке ключей: сначала выполните security unlock-keychain login.keychain-db.
  2. В сессиях CI связка ключей по умолчанию заблокирована — добавьте команду разблокировки в начало скрипта или перейдите на управление сертификатами через fastlane match.
  3. Убедитесь, что сертификат импортирован: security find-identity -v -p codesigning должен показывать вашу подписную идентичность.
  4. Ошибка unsupported SDK почти всегда означает несовпадение версии Xcode — переключите версию по инструкции выше и повторите попытку.

Чёрный экран в VNC

  1. Сначала проверьте SSH — если вход проходит, система в порядке, проблема только в службе отображения, переустанавливать систему не нужно.
  2. По SSH перезапустите службу общего доступа к экрану: sudo launchctl kickstart -k system/com.apple.screensharing.
  3. Слишком высокое разрешение может вызвать чёрный экран или артефакты — снизьте разрешение клиента до 1920×1080 и переподключитесь.
  4. Не помогло — перезапустите инстанс через панель управления. У машины есть встроенный виртуальный дисплей, изображение восстанавливается после перезапуска.
Tickets

Тикеты и сроки реакции

Служба поддержки работает по двум сменам — UTC+8 и UTC-8. Каналов связи только два: тикеты в панели управления и почта поддержки. Телефона и онлайн-чата нет.

Тикет в панели управления (рекомендуется)

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

  • Укажите ID инстанса, узел и точное время возникновения проблемы
  • Вставляйте полный текст команд и ошибок, а не скриншоты
  • Перечислите шаги из чек-листа этой страницы, которые уже проверили — это ускорит обработку

Почта поддержки

Если не удаётся войти в панель управления, есть вопросы по счетам и счёт-фактурам или технические вопросы до заказа — пишите на support@oncemini.com. Укажите тему письма и адрес регистрации в тексте, чтобы быстрее привязать обращение к аккаунту.

  • Пишите с адреса, указанного при регистрации — это исключает лишнюю проверку личности
  • Другие варианты связи и шаблоны писем — на странице «Контакты»
Тип проблемы Первая реакция Часы покрытия Рекомендуемый канал
Авария (инстанс не работает, полностью недоступен) 30 минут 7×24 Тикет в панели управления, с отметкой «срочно»
Обычные технические вопросы (сборка, настройка, производительность) 2 часа Рабочее время (смены UTC+8 / UTC-8) Тикет в панели управления
Счета, счёт-фактуры и вопросы перед заказом 1 рабочий день Рабочее время support@oncemini.com
Uptime

Статус работы и порядок уведомлений

FAQ

Частые вопросы по оплате и счетам

Вопросы про подключение и сборку — выше, здесь — про деньги и данные. Подробности о ценах — на странице «Тарифы аренды».

С какого момента начинается тарификация?

С момента доставки письма с учётными данными, а не с момента оформления заказа. В посуточном тарифе сутки считаются 24-часовым периодом; среднее время доставки — 5 минут, и этот интервал не тарифицируется.

Как продлить аренду? Списание происходит автоматически?

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

Если не продлить вовремя, данные удалят немедленно?

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

Как перенести данные со старой машины на новую?

Если обе машины ещё в аренде, быстрее всего синхронизировать напрямую между ними: rsync -avz -e "ssh -p 22" ~/work/ dev@новый_узел:~/work/ — в пределах одного региона внутренняя сеть выдаёт полную скорость гигабитного канала. Можно также сначала скачать снапшот из панели управления, а затем восстановить его на новой машине.

Какие способы оплаты поддерживаются?

Все расчёты на сайте ведутся в долларах США. Принимаются USDT-TRC20 и карты Visa / Mastercard / Amex (Stripe) — точный список смотрите на странице оплаты в portal. Скрытых платежей за трафик нет: сумма в счёте соответствует цене тарифа.

Можно получить счёт-фактуру?

После каждой оплаты автоматически формируется PDF-квитанция, доступная для скачивания на странице «Счета» в панели управления. Если нужно указать реквизиты компании или дополнить налоговые данные — напишите на support@oncemini.com, обработка занимает 1 рабочий день.

Хочу повысить конфигурацию посреди срока аренды — как считается оплата?

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

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

В течение 24 часов после доставки первого заказа можно запросить полный возврат средств; периоды продления не возвращаются. Рекомендуем сначала попробовать посуточный тариф за $19,9 в день, прогнать свой сборочный скрипт и только потом решать насчёт помесячной оплаты.

Переустановка macOS платная? Есть ли ограничение по количеству?

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

Можно арендовать несколько машин на один аккаунт? Можно ли сдавать в субаренду?

Один аккаунт может арендовать сразу несколько машин — команды часто берут по одной машине на проект и различают runner'ы через label. Субаренда и перепродажа третьим лицам нарушают условия обслуживания, при выявлении сервис будет остановлен; совместное использование одной машины внутри команды не ограничено.

$ oncemini ticket new --priority normal

Ваш вопрос не разобран в документации?

Войдите в панель управления и создайте тикет — в рабочее время ответим в течение 2 часов. Если машины ещё нет, попробуйте посуточный тариф.