От получения до начала работы

Не удаётся подключиться
к вашему Mac? Начните проверку здесь

Руководство по подключению и настройке среды разработки на выделенном облачном Mac. Сначала проверьте данные в консоли, затем — инструменты и настройки задач. Узел — выделенная физическая машина, а не виртуальная; доступны графический интерфейс и командная строка.

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

Первое подключение

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

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

Графический интерфейс

Общий экран / VNC

Получите адрес удалённого рабочего стола и учётные данные на странице инстанса в консоли. На macOS можно использовать приложение «Общий экран», на других системах — совместимый с VNC клиент. Не путайте пароль SSH с отдельными учётными данными VNC.

  1. Скопируйте адрес хоста, порт удалённого рабочего стола и имя пользователя; проверьте, нет ли лишних пробелов.
  2. Укажите адрес и порт в клиенте. Стандартный порт VNC — 5900, но фактический порт нужно брать из консоли.
  3. Пройдите аутентификацию по инструкции для вашего инстанса. Если появится ошибка, сначала проверьте имя пользователя и тип учётных данных, затем повторите попытку.
  4. После подключения смените временный системный пароль. Если для удалённого рабочего стола используются отдельные учётные данные, обновите и сохраните их согласно инструкции для инстанса.

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

Командная строка

SSH

Используйте системный терминал или надёжный SSH-клиент. Стандартный порт SSH — 22; если в данных подключения указан другой порт, добавьте в команду параметр -p .

  1. Возьмите адрес хоста, SSH-порт и имя пользователя со страницы инстанса. Не угадывайте учётную запись по умолчанию.
  2. Подключитесь командой ssh -p PORT USER@HOST , заменив заглавные поля данными из инструкции.
  3. При первом запросе отпечатка хоста сначала сверьте его с достоверными данными инстанса. Если отпечаток неожиданно изменился, прервите подключение и отправьте заявку.
  4. После первого входа выполните команду passwd , чтобы сменить временный пароль, а затем настройте собственный открытый SSH-ключ.

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

Начните с текста ошибки — не сбрасывайте машину без необходимости
Что происходит Что проверить сначала Что приложить к заявке
Истекло время ожидания подключения Проверьте, готов ли инстанс, верны ли адрес и порт, разрешены ли исходящие подключения в локальной сети или брандмауэре. Для сравнения попробуйте подключиться из другой сети. Узел, номер машины, способ подключения, время ошибки и часовой пояс.
Ошибка аутентификации Проверьте имя пользователя, тип учётных данных и то, меняли ли вы пароль. Не публикуйте пароль в журналах и на снимках экрана. Полный текст ошибки, используемый клиент и способ аутентификации. Не прикладывайте пароль или закрытый ключ.
По SSH подключается, но экран рабочего стола чёрный Завершите графический сеанс и подключитесь заново; проверьте совместимость клиента. Не останавливайте запущенные сборки и тесты. Версия клиента, снимок чёрного экрана, работает ли SSH и какие системные настройки менялись недавно.
Изменился отпечаток хоста Проверьте, подтверждалась ли замена машины или сброс системы. Пока это не выяснено, не удаляйте локальную запись отпечатка. Старый и новый отпечатки, номер машины и последнее уведомление о подготовке инстанса.
Подготовка к первому дню

Около 4 минут на базовую проверку перед началом работы

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

  1. 01

    Смените пароль и проверьте брандмауэр

    Около 1 минуты

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

  2. 02

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

    Около 2 минут

    Проверьте версию Xcode в графическом интерфейсе, затем выполните xcode-select -p и xcodebuild -version. Если проект требует определённую версию, сначала переключитесь на нужный набор инструментов и только потом запускайте сборку.

  3. 03

    Склонируйте репозиторий и запустите простую задачу

    Около 1 минуты

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

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

Перенос и CI

Сначала перенесите данные, затем инструменты и только после этого подключите задачи

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

01 / DATA

Данные

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

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

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

02 / TOOLS

Инструменты

Проверьте версии Homebrew, Xcode, SDK и зависимостей проекта. Стандартный путь Homebrew на Apple Silicon — /opt/homebrew; не копируйте без проверки абсолютные пути с локальной машины.

Восстановите зависимости по lock-файлу проекта. Отдельно проверьте сертификаты подписи, соответствующие закрытые ключи и профили подготовки. Наличие графического интерфейса не означает, что у CI-процесса без него есть права на подпись.

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

03 / CI

Настройка CI

Зарегистрируйте собственный исполнитель GitHub Actions или GitLab Runner. Используйте отдельную системную учётную запись и токен с минимальными правами; сопоставьте метки исполнителя с задачами проекта.

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

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

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

Xcode и подпись

Сертификата на машине недостаточно — права нужны и процессу

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

Сертификат импортирован, но идентификатор подписи не находится. Почему?

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

Затем выполните security find-identity -v -p codesigning , чтобы посмотреть доступные текущему пользователю идентификаторы подписи. Если результаты команды отличаются от данных графического интерфейса, сначала проверьте пользователя, от имени которого запущена команда, и список связок ключей для поиска — не спешите менять модель машины.

Сертификат доступен, но сборка сообщает, что профиль подготовки не подходит?

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

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

Подпись работает в терминале, но не в CI. Почему?

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

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

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

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

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

Производительность и диск

Сначала найдите узкое место, затем решайте, что менять

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

Симуляторы и кэш сборки заняли весь диск. Что удалить сначала?

Сначала выполните df -h , чтобы проверить свободное место. В Xcode найдите неиспользуемые среды выполнения симуляторов и архивы сборок. DerivedData можно создать заново, но после очистки следующая сборка будет заново формировать кэш. Перед очисткой приостановите работу над открытым проектом.

С помощью команды xcrun simctl list devices проверьте список устройств. Убедившись, что устройство больше не нужно, выполните xcrun simctl delete unavailable , чтобы удалить недоступные устройства. Данные тестов в симуляторе могут пропасть вместе с устройством — сначала экспортируйте всё важное.

Когда стоит выбрать SSD на +1TB или +2TB?

Если проектам, нескольким средам симуляторов, образам контейнеров и материалам нужно место для длительного хранения, а после удаления восстановимых кэшей диск всё равно постоянно почти заполнен, рассмотрите расширение. SSD на +1TB стоит $2.2 в день, на +2TB — $4.4 в день. Цены за другие сроки смотрите в настройках заказа.

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

Как выбрать одну из трёх конфигураций для сборок и инференса?

Hold 16: M4, 16GB памяти и SSD 256GB — для лёгких сборок и CI одного проекта. Hold 24: M4, 24GB памяти и SSD 512GB — для повседневной разработки в Xcode, нескольких симуляторов и UI-тестирования.

Hold Pro 64: M4 Pro, 64GB памяти и SSD 2TB — для крупных проектов и экспериментов с MLX. Возможность запуска модели зависит от её размера, способа квантования и требований к контексту — ориентируйтесь на реальные тесты, а не только на название модели.

Для каких задач подходит объединение узлов через Thunderbolt 5?

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

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

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

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

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

Где посмотреть дату окончания и статус продления?

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

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

Изменятся ли данные подключения после продления?

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

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

Какие способы оплаты доступны?

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

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

Нужно сменить конфигурацию или добавить диск? Сразу оформить новый заказ?

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

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

Проблема не решена? Передайте её с нужными подробностями

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

Статус заявки проверяйте в консоли. Время ответа зависит от характера проблемы и объёма диагностики; фиксированный срок в минутах не гарантируется. По вопросам до покупки, настройки для команды или проблемам со входом напишите на support@vpshold.com.