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

Срок аренды, подключение, сборка —
что нужно проверить заранее?

Здесь собраны ответы о работе с облачным Mac. Сначала проверьте тарифы и локации, затем выберите Xcode, runner и способ удалённого доступа. Пошаговые инструкции — в документации.

Выделенные физические Mac, не виртуальные машины. 3 конфигурации, 5 локаций, от $21.1 в день.

Тарифы: выберите срок, затем дополнительные опции

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

Как рассчитывается оплата за день, неделю, месяц и квартал?

Оплата вносится заранее за выбранный период, а конфигурация и дополнительные опции тарифицируются отдельно. Например, цены на ArmRDP M4 Base составляют $21.1 в день, $57.1 в неделю, $105.7 в месяц и $287.5 в квартал. Это отдельные тарифы за каждый период, а не дневная цена, умноженная на число дней.

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

Сравнить цены на все 3 конфигурации
Продление включается автоматически? Как избежать остановки сборки?

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

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

Можно ли добавить хранилище или Thunderbolt 5 Parallel Disk Expansion во время аренды?

В каталоге доступны SSD на +1 ТБ и +2 ТБ, а также Thunderbolt 5 Parallel Disk Expansion с оплатой за каждый сервер. Сначала проверьте доступные изменения для заказа в консоли. Перед подтверждением уточните, как добавить опцию к текущему заказу, с какого момента начнётся оплата и потребуется ли менять работающие задачи. Не предполагается, что изменения вступят в силу сразу или будут автоматически рассчитаны пропорционально оставшемуся сроку.

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

Оплата: два способа, расчёты только в долларах

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

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

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

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

Я оплатил заказ, но его статус не изменился. Что делать?

Вернитесь в консоль, обновите страницу заказа и проверьте, что речь идёт о том же счёте. Не считайте оплату успешной только потому, что браузер вернулся на страницу, и не платите повторно, пока статус не подтверждён.

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

Сервер: целиком в вашем распоряжении, не виртуальная машина

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

Это виртуальная машина или выделенный физический Mac?

Это выделенный физический Mac mini, а не виртуальная машина. На время аренды весь сервер в вашем распоряжении — он не делится с другими клиентами. Доступны графический интерфейс macOS и командная строка; Xcode, симуляторы и Metal работают непосредственно на физическом компьютере.

В каталоге представлены только 3 конфигурации: ArmRDP M4 Base — M4 / 16 ГБ / 256 ГБ, ArmRDP M4 Plus — M4 / 24 ГБ / 512 ГБ, ArmRDP M4 Pro — M4 Pro / 64 ГБ / 2 ТБ. При выборе учитывайте пиковое потребление памяти и рабочий объём данных на диске — одной модели чипа недостаточно, чтобы определить, подойдёт ли конфигурация.

Доступны ли root и sudo? Можно ли переустановить систему?

Права учётной записи, выданной через консоль, определяют доступные возможности. После первого входа выполните команду id чтобы посмотреть пользователей и группы. Командой sudo -l проверьте, какие административные действия разрешены. Перед установкой программ, регистрацией служб или изменением сети, требующими sudo, убедитесь, что у вас есть нужные права. Использование sudo не означает, что нужно включать удалённый вход root.

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

Локации: выбирайте по расположению команды, а не по принципу «переключить»

5 локаций для команд в разных регионах. Во всех доступны 3 конфигурации.

Какие есть локации и как выбрать подходящую?

Доступны 5 локаций: Сингапур, Япония (Токио), Южная Корея (Сеул), Гонконг и запад США. Во всех 5 локациях продаются все 3 конфигурации. Актуальная доступность указана в консоли.

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

Можно ли перенести сервер в другую локацию в середине срока аренды?

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

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

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

Стабильные версии инструментов, процесс подписи и изоляция задач важнее, чем простое увеличение числа параллельных runner.

Можно установить несколько версий Xcode и закрепить нужную?

Можно установить несколько версий Xcode, совместимых с текущей версией macOS, и выбрать нужный набор инструментов для каждого проекта. Выполните xcodebuild -version и xcode-select -p чтобы проверить текущую среду. В конвейере можно указать нужную версию Xcode через DEVELOPER_DIR и не менять глобальный выбор для разных задач.

При фиксации версии сохраните также версии SDK и сред выполнения симуляторов, файлы блокировки зависимостей и скрипты сборки. Перед обновлением скопируйте проверочный конвейер и убедитесь, что архивирование, codesign и экспорт проходят успешно. После этого обновите рабочие задачи. SSD большего объёма поможет хранить больше версий, но не устранит ограничения совместимости macOS и Xcode.

Работают ли симуляторы? Где хранить материалы для подписи?

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

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

Сколько серверов нужно для параллельной сборки? Можно ли запускать несколько runner на одном?

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

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

Как перенести локальную сборку в CI

Удалённый доступ: VNC для работы с интерфейсом, SSH для задач

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

Для чего нужны SSH и VNC?

SSH подходит для установки зависимостей, запуска скриптов, просмотра журналов и управления службами CI. Общий экран VNC нужен для работы в Xcode, просмотра симуляторов и поиска проблем с графическим интерфейсом. Оба способа подключения ведут к одному облачному Mac — это не две изолированные среды.

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

Настроить SSH и общий экран
Какова задержка при удалённом подключении? С чего начать поиск причин зависаний?

Нельзя определить постоянную задержку для вашей сети только по названию локации. Отзывчивость SSH в основном зависит от времени передачи данных туда и обратно, а работа VNC — также от разрешения экрана, изменений изображения, настроек сжатия и доступной пропускной способности. Результат одного ping не показывает, насколько удобной будет работа при длительном подключении.

При зависаниях сначала проверьте, нормально ли работает SSH в той же сети. Затем снизьте разрешение или глубину цвета VNC и отключите лишнюю анимацию. В заявке укажите ОС клиента, локацию, способ подключения, время возникновения проблемы и потери пакетов. Уточните, что именно происходит: медленно вводятся команды, обновляется изображение или обрывается соединение.

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

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

По возможности подключайтесь к VNC через SSH-туннель, не открывая общий экран для ненужных источников. У каждого участника команды должен быть собственный ключ; при увольнении или смене роли своевременно отзывайте доступ. При ротации учётных данных проверьте переменные runner, скрипты автоматизации и сохранённые данные в локальных клиентах.

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

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

Физический сервер
Отдельный Mac, на котором работает macOS и который имеет собственные процессор, память и диск.
Выделенный сервер
На время аренды весь компьютер в вашем распоряжении; его вычислительные ресурсы не делятся с другими клиентами.
Не виртуальная машина
Задачи выполняются в системе физического Mac, а не в гостевой системе, созданной средствами виртуализации.
VNC
Способ графического подключения, который передаёт изображение с удалённого Mac и позволяет управлять им с помощью клавиатуры и мыши.
SSH
Инструмент для выполнения команд, передачи файлов и управления удалёнными службами через зашифрованное соединение.
self-hosted runner
Рабочий процесс, который вы настраиваете на облачном Mac. Он получает задания от CI-платформы и выполняет сборки.
codesign
Утилита macOS для добавления и проверки цифровой подписи кода, а также управления идентификаторами подписи и связанными с ними правами.
DerivedData
Рабочий каталог Xcode для промежуточных файлов, индексов и части кэша. Изоляция по задачам помогает избежать конфликтов при параллельной работе.

Всё проверили? Начните с одного сервера

Сначала выполните архивирование реального проекта на сервере с посуточной оплатой, а затем решите, какой срок аренды и сколько серверов для параллельной работы вам нужно. По вопросам текущего заказа создайте заявку через консоль. До аренды напишите на support@armrdp.com.