Поддержка облачного Mac

Сначала проверьте сами

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

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

По типу проблемы

Выберите нужный раздел

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

Подключение и вход

Тайм-аут SSH, чёрный экран удалённого рабочего стола, сбои демонстрации экрана. Сначала проверьте данные заказа и сеть, затем выясните, проблема в подключении или в сеансе рабочего стола.

Xcode и симуляторы

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

CI-runner

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

Оплата и продление

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

Проблемы с подключением

Сначала проверьте порт, затем сеанс

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

Тайм-аут SSH

Сначала различите тайм-аут и ошибку аутентификации. Тайм-аут обычно возникает до установки TCP-соединения: проверьте адрес, порт, выход в интернет из локальной сети и состояние узла. Если появилась ошибка Permission denied , значит, соединение дошло до этапа аутентификации. Проверьте имя пользователя и ключ, а не меняйте порт снова и снова.

nc -vz "$NODE_HOST" "$SSH_PORT"

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

Чёрный экран после подключения по VNC

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

stat -f '%Su' /dev/console

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

Неверное разрешение при демонстрации экрана

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

system_profiler SPDisplaysDataType

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

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

Среда разработки

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

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

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

Сначала выполните xcode-select -p и xcodebuild -version, чтобы записать текущий каталог разработчика и версию. Убедитесь, что нужная версия Xcode установлена, затем укажите каталог Contents/Developer. Путь ниже подходит для установки с именем приложения Xcode.app. Если на узле приложение называется с указанием версии, замените его на фактический путь.

xcode-select -p
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
xcodebuild -version

Процесс CI может переопределять системный выбор через переменную DEVELOPER_DIR . Если версии в терминале и конвейере различаются, проверьте переменные окружения задания и пользователя службы runner — не ограничивайтесь системными настройками. Если для отдельного задания нужна другая версия, укажите каталог разработчика непосредственно в этом задании, чтобы не влиять на остальные сборки на узле.

Когда стоит очищать DerivedData и как не удалить проект по ошибке?

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

du -sh "$HOME/Library/Developer/Xcode/DerivedData"
mv "$HOME/Library/Developer/Xcode/DerivedData" "$HOME/Library/Developer/Xcode/DerivedData.backup.$(date +%s)"

Переименовывайте каталог, только если он существует; при следующей сборке Xcode создаст кэш заново. Переименование не освобождает место на диске. Убедитесь, что новая сборка проходит, а затем удалите старый кэш по фактическому пути резервной копии. Сохраните нужные архивы: не удаляйте вместе с кэшем каталоги Archives, проекта и материалы для подписи. Если CI использует пользовательский параметр -derivedDataPath, проверяйте указанный путь, а не каталог по умолчанию для текущего пользователя.

Почему после импорта сертификата подписи сборка не видит удостоверение?

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

security find-identity -v -p codesigning
security list-keychains -d user

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

Локальная сборка проходит, а задача CI-runner или симулятора падает. С чего начать проверку?

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

whoami
xcode-select -p
xcodebuild -version
printf '%s\n' "$PATH"
xcrun simctl list devices available

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

Выделенный узел означает, что физические ресурсы не распределяются между арендаторами, но разные задачи на одном узле всё равно могут влиять друг на друга. Инструкции по подключению GitHub Actions и GitLab CI приведены в руководстве по подключению.

Оплата и срок аренды

Сначала проверьте статус заказа

Все цены указаны в долларах США. Поддерживаются только USDT-TRC20 и карты Visa / Mastercard / Amex через Stripe. Доступные платёжные шлюзы отображаются в консоли в реальном времени.

Перевод USDT-TRC20 отправлен. Почему заказ всё ещё не отмечен как оплаченный?

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

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

Не проходит оплата картой или в выписке появилась незавершённая операция. Как проверить статус?

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

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

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

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

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

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

Подготовка заявки

Опишите проблему так, чтобы её можно было сразу проверить

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

Обычный запрос: опишите ожидаемый и фактический результат

Вопросы по среде разработки, настройке и продлению аренды можно решить через заявку. В качестве часового ориентира используется UTC+8; поддержка работает в рабочие часы Азиатско-Тихоокеанского региона. Актуальные часы ответа и статус заявки смотрите в уведомлениях и ответах в консоли — фиксированное время ответа на этой странице не гарантируется.

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

Срочная проблема: узел недоступен

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

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

Перед отправкой подготовьте три группы данных

  1. Заказ и узел

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

  2. Время и последствия

    Укажите время начала проблемы и часовой пояс. Опишите, что именно затронуто: SSH, графический рабочий стол, сборка или проверка оплаты. Также укажите, когда всё работало в последний раз.

  3. Результаты и материалы

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

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

Нужен ещё один шаг? Настройте подключение до конца

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