Справочный центр

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

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

Сначала разбираемся с недоступностью узла. По вопросам выбора модели или развертывания для команды напишите на адрес support@armvnc.com.

Активация и подключение

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

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

Где после оплаты найти IP-адрес, имя пользователя и временный пароль?

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

  1. 01Проверьте заказ

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

  2. 02Скопируйте данные для входа

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

  3. 03Смените пароль при первом входе

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

ssh -p 22 USER@NODE_IP
passwd

Замените USER и NODE_IP на значения, указанные в консоли. Если в сведениях об узле указан другой порт, используйте его. При вводе пароля в SSH символы обычно не отображаются — это нормально.

Оплата прошла, но в заказе ещё нет данных для подключения. Что делать?

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

Если сведения об оплате не совпадают со статусом заказа, создайте обращение в консоли и укажите номер заказа, способ и сумму оплаты, дату и время с часовым поясом. Для USDT-TRC20 также укажите хэш транзакции. Для оплаты картой достаточно справочных данных из квитанции — не сообщайте полный номер карты, код безопасности или код из SMS.

Как проверить модель и узел для двух конфигураций?

Arm Line M4: M4 / 16GB / 256GB; Arm Grid M4 Pro: M4 Pro / 64GB / 2TB. Обе конфигурации доступны в пяти локациях: Сингапур, Токио (Япония), Сеул (Южная Корея), Гонконг и восток США. Текущую доступность проверяйте в консоли.

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

SSH и VNC

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

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

VNC подключается, но экран рабочего стола чёрный. С чего начать?

Сначала завершите повторные удалённые сеансы и подключитесь заново. Убедитесь, что клиент подключён к нужному узлу, и проверьте, не заблокирована ли macOS и не открыт ли экран переключения пользователей. Если по SSH войти удаётся, сохраните журналы сборки и не перезагружайте принудительно узел, пока выполняется archive.

Если графический интерфейс доступен, откройте «Системные настройки → Основные → Общий доступ» и проверьте включение общего доступа к экрану и список пользователей с разрешением на подключение. В разных версиях macOS расположение настроек может отличаться. Текущего пользователя консоли можно проверить по SSH — это поможет определить, запущен ли графический сеанс:

stat -f '%Su' /dev/console

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

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

Сначала установите в клиенте VNC режим отображения «По размеру окна», чтобы отличить масштабирование клиента от фактического разрешения удалённого экрана. Текущее разрешение проверьте на удалённом устройстве в разделе «Системные настройки → Мониторы». Для начала попробуйте 1920 × 1080, а затем подберите значение с учётом экрана клиента и качества сети.

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

Как диагностировать тайм-аут SSH, отказ в подключении и ошибку аутентификации?

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

nc -vz NODE_IP 22
ssh -vv -o ConnectTimeout=10 -p 22 USER@NODE_IP

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

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

Неправильно вводятся символы или не совпадают сочетания клавиш. Как это проверить?

На удалённом устройстве откройте «Системные настройки → Клавиатура → Источники ввода» и проверьте раскладку, а в разделе «Клавиши-модификаторы» — назначение Command, Option и Control. У клавиатур Windows и Mac расположение клавиш-модификаторов различается. Сначала проверьте символы в обычном текстовом редакторе и только затем вводите команды в терминале.

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

Xcode и подпись

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

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

Установлено несколько версий Xcode. Как узнать, какую использует CI?

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

xcode-select -p
xcodebuild -version
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
  xcodebuild -version

Указанный путь должен вести к версии Xcode, установленной на узле. Если нужно переключить версию глобально, сначала приостановите задачи, зависящие от текущего набора инструментов, а затем выполните команду sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer. Компоненты и условия лицензии для первого запуска проверьте заранее в интерактивном сеансе.

Интерактивная сборка проходит, а CI сообщает, что не найдена учётная запись для подписи. Что делать?

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

security find-identity -v -p codesigning
security unlock-keychain "$HOME/Library/Keychains/build.keychain-db"

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

Как выбрать автоматическую подпись или профиль подготовки вручную?

Используйте схему подписи, уже проверенную в проекте. Автоматическая подпись подходит для процессов с контролируемой автоматизацией. Ручной профиль — для релизных процессов, где нужно зафиксировать сертификат, профиль подготовки и параметры экспорта. Не меняйте одновременно схему подписи и версию Xcode во время одной диагностики.

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

CI-раннер

Терминал и фоновые задачи могут работать в разных средах

Для GitHub Actions self-hosted runner и GitLab Runner проверьте пользователя, от имени которого выполняются задачи, путь к инструментам и секретные переменные. Сначала запустите минимальную диагностическую задачу, затем восстановите полный пайплайн.

Узел доступен, но runner не в сети. Что проверить?

Сначала убедитесь на платформе хостинга кода, что runner зарегистрирован. Затем проверьте состояние службы на узле, привязку к репозиторию и метки задач. Команды GitHub Actions ниже нужно выполнять из каталога установки runner. Для команд GitLab Runner программа должна быть установлена:

./svc.sh status
gitlab-runner status
launchctl list | grep -i runner

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

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

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

whoami
pwd
printf '%s\n' "$PATH"
xcodebuild -version

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

Тарифы и оплата

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

Оплата принимается только в USDT-TRC20 и картами Visa / Mastercard / Amex через Stripe. Все платежи выставляются в долларах США (USD). Доступные способы оплаты определяются ответом серверного API.

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

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

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

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

Как проверить оплату картой и что сообщить при ошибке?

Платежи по картам Visa / Mastercard / Amex обрабатываются через Stripe. После оплаты вернитесь в консоль и проверьте статус соответствующего счёта и сумму в USD. Если банк показывает операцию, а статус счёта не изменился, сохраните квитанцию и создайте обращение. Не пытайтесь оплатить повторно несколько раз подряд.

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

Когда начинается списание и где посмотреть срок аренды и продление?

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

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

Что сделать с проектом и артефактами сборки перед окончанием аренды?

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

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

Доступность и компенсация

Условия доступности и порядок компенсации — в одном месте

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

Целевой месячный уровень доступности узла

99,9%

Около 43 минут простоя за 30 дней.

Расчёт: 30 × 24 × 60 × 0,1% = 43,2 минуты без округления. Это выражение порогового значения в единицах времени, а не прогнозируемый простой.

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

Запросить компенсацию в консоли

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

  1. 01Сначала сообщите о сбое

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

  2. 02Укажите хронологию

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

  3. 03Проверьте компенсацию

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

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

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

Опишите проблему, её влияние и выполненные проверки

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

Сначала опишите влияние, затем приложите журналы

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

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

По вопросам до оформления заказа и при проблемах со входом напишите на адрес support@armvnc.com. Не прикладывайте пароли, закрытые ключи, токены или файлы подписи.

Скопируйте шаблон и заполните текст обращения

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

Номер заказа:
Обозначение узла / модель:
Тип проблемы: подключение / сборка / счёт / компенсация
Масштаб проблемы: все подключения / только графический рабочий стол / одна задача
Время обнаружения и часовой пояс:
Время последнего успешного подключения:
Время восстановления (если восстановлено):
Полное описание проблемы и текст ошибки:
Доступен ли SSH:
Клиент / система / версия Xcode:
Выполненные действия по диагностике и результаты:
Недавние изменения конфигурации:
Журналы или скриншоты без чувствительных данных:
Чем помочь:

Не нашли ответ? Обратитесь в службу поддержки

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