Подключение к рабочей станции

Подключение к Mac из Windows

VNC — для рабочего стола, SSH — для сборки.

Продолжайте писать код в Windows или Linux. Когда понадобится собрать проект для iOS, перенесите его на выделенный Mac в облаке.

Уже есть заказ? Войдите в панель управления и найдите параметры подключения в сведениях об экземпляре. Не храните пароли и приватные ключи в репозитории проекта.

XCODEHOST / ДОСТУП Подключение на срок аренды

Сверьте данные подключения

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

Рабочий стол VNC
Адрес · порт VNC · пароль
Сборка по SSH
Адрес · порт SSH · имя пользователя · ключ
Передача по SFTP
Используйте параметры SSH
.ipa

Загрузите проект → соберите и экспортируйте → скачайте файл

Выберите задачу

Разделите рабочий стол, команды и файлы

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

Рабочий стол через VNC

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

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

Работа в интерфейсе

Сборка по SSH

Подходит для команд сборки проектов Flutter и React Native, а также экспортированных проектов Unity и просмотра журналов. Команды выполняются на удалённой машине, без постоянной передачи изображения рабочего стола.

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

Выполнение команд

Передача проекта по SFTP

Подходит для загрузки исходного кода, ресурсов и файлов конфигурации, а также скачивания журналов сборки и .ipa. Для SFTP используются данные SSH — не указывайте порт VNC.

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

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

Настройка Windows

Укажите три параметра VNC

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

  1. 01

    Укажите адрес

    Введите адрес подключения к экземпляру в поле узла клиента. Адрес, имя пользователя и номер заказа — разные данные. Не вставляйте в поле всю инструкцию по подключению.

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

  2. 02

    Укажите порт

    Используйте порт VNC из панели управления. SSH и VNC — разные службы, их порты нельзя менять местами. Если для порта предусмотрено отдельное поле, введите число туда.

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

  3. 03

    Укажите пароль

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

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

Настройка Linux

Добавьте открытый ключ, затем подключайтесь

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

Храните ключ в безопасности

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

ssh-keygen -t ed25519 -f ~/.ssh/xcodehost
chmod 600 ~/.ssh/xcodehost

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

Проверьте узел

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

ssh -i ~/.ssh/xcodehost \
  -p "$SSH_PORT" \
  "$MAC_USER@$MAC_HOST"

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

Запуск сборки

От входа в систему до экспорта сборки

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

SSH / Archive / .ipa
$ ssh -i ~/.ssh/xcodehost -p "$SSH_PORT" "$MAC_USER@$MAC_HOST"
Last login: ...

$ xcodebuild -version
Xcode ...

$ xcodebuild -exportArchive \
  -archivePath build/App.xcarchive \
  -exportPath build/export \
  -exportOptionsPlist ExportOptions.plist
** EXPORT SUCCEEDED **

$ fastlane pilot upload --ipa build/export/App.ipa
Successfully uploaded package to App Store Connect
Измените путь к проекту, имя Archive и файл параметров экспорта в соответствии с проектом. Вывод помогает определить успешный этап, но не означает, что сборка или загрузка уже выполнена на каком-либо экземпляре.

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

Выполните xcodebuild -version и сверьте версии инструментов. Для проекта Flutter сначала запустите flutter doctor; для React Native проверьте зависимости, затем выполните pod install; для Unity сначала загрузите экспортированный проект Xcode.

Затем проверьте результат

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

Выберите узел

Ориентируйтесь на маршрут подключения

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

Справочная задержка по регионам покрытия. Проверьте её в своей сети.
Узел Регион покрытия Ориентировочная задержка туда и обратно Подходящие задачи
Сингапур Юго-Восточная Азия 20~50 мс Работа с рабочим столом в регионе; сборка по SSH; передача проекта
Токио Восточная Азия 30~60 мс Отладка через рабочий стол в регионе; сборка по SSH; скачивание сборки
Сеул Северо-Восточная Азия 30~50 мс Удалённый рабочий стол в регионе; сборка из командной строки; передача файлов
Гонконг Южный Китай и Юго-Восточная Азия 20~40 мс Работа с рабочим столом в регионе; сборка по SSH; загрузка проекта
Запад США Западное побережье Северной Америки 25~35 мс Проверка через рабочий стол в регионе; автоматическая сборка; передача сборки

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

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

Устранение задержек

Сначала снизьте качество изображения, затем проверьте сеть

Рывки при работе с рабочим столом, сбои SSH-подключения и медленная передача файлов — разные проблемы. Меняйте по одному параметру и записывайте, что изменилось.

  1. 01

    Снизьте качество

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

  2. 02

    Перейдите к командам

    Если рабочий стол нужен только для проверок, перенесите сборку в SSH. Сохраняйте журналы и выполняйте поэтапно установку зависимостей, создание Archive и экспорт. Если SSH работает, а VNC тормозит, сначала проверьте передачу изображения, а не меняйте проект.

  3. 03

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

    Выберите узел, ближайший к вашему местоположению, сверившись с таблицей. Также проверьте локальную Wi-Fi-сеть, прокси и загрузку канала. Узел выбирается при оформлении заказа: его смена не означает, что существующий проект перенесётся автоматически.

Проверьте подключение на своём проекте

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