Среда сборки — под контролем вашей команды

Мы решаем одну задачу:
чтобы сборки не ждали в очереди

Выделенные физические Mac mini позволяют командам iOS/macOS самостоятельно выбирать инструменты, среду подписи и порядок задач. Это не виртуальные машины: ваши сборки не попадают в очередь других клиентов.

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

Распределение ресурсов
Один узел целиком — одному клиенту
Каталог конфигураций
3 конфигурации Apple Silicon
Локации узлов
6 локаций на выбор
Сначала избавьтесь от очередей — потом автоматизируйте

После каждого слияния не должно приходиться ждать завершения чужих задач

Мы запустили этот сервис, чтобы решить две постоянные проблемы общих CI-сред: команда не контролирует ресурсы сборки, а среду подписи сложно изолировать.

Отделите ожидание от сборки

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

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

Привяжите среду подписи к команде

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

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

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

Прозрачные принципы работы

Чёткие условия важнее громких обещаний

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

Выделенный узел, без перепродажи ресурсов

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

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

Открытые цены для каждой конфигурации

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

Расширение хранилища и подключение Thunderbolt 5 указаны отдельными позициями. Сравнивая варианты, проверяйте стоимость аренды узла отдельно от нужных дополнений, а перед оплатой ещё раз сверьте состав заказа.

Реальные характеристики без преувеличений

В каталоге представлены только три конфигурации: M4 / 16GB / 256GB, M4 / 24GB / 512GB и M4 Pro / 64GB / 2TB. Название модели не заменяет сведений о чипе, памяти и объёме диска.

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

Выберите конфигурацию, начав с задач на один день

Четыре сценария работы — единые условия выделенного узла

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

Независимый разработчик: допишите функцию и соберите приложение

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

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

XR Build 16 · M4 / 16GB / 256GB

CI-команда: подключите runner к запросам на слияние

Утром изучите журналы ошибок предыдущего запуска, а после слияния кода днём автоматически запускайте self-hosted runner GitHub или GitLab. Разделите тесты и релизные задачи по меткам, используйте Fastlane gym для сборки и поддерживайте одинаковые параметры подписи для приложения, виджета и расширения.

Если у вас несколько Target, тесты и кэш, сначала проверьте XR Build 24. Увеличивайте параллельность постепенно, чтобы несколько задач Archive не записывали одновременно в один каталог и не конфликтовали из-за состояния подписи.

XR Build 24 · M4 / 24GB / 512GB

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

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

Для таких задач можно начать с XR Build Pro 64. 64GB унифицированной памяти — это характеристика конфигурации, а не гарантия работы любой модели. Сначала оцените общий объём памяти, необходимый модели, среде выполнения и другим задачам.

XR Build Pro 64 · M4 Pro / 64GB / 2TB

Аудио и видео: передавайте задачи в очередь, но не оставляйте единственную копию

Днём через графический интерфейс macOS проверьте проект и пути к материалам, а также наличие лицензий, плагинов и шрифтов, нужных для Logic или Final Cut. На ночь запланируйте рендеринг или пакетное перекодирование. После завершения экспортируйте результат, проверьте целостность файлов и очистите временный кэш.

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

XR Build Pro 64 · M4 Pro / 64GB / 2TB

Один каталог — шесть локаций

Выберите регион и проверьте инструменты и условия подключения

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

Сингапур

SG · UTC+8

Подходит командам Юго-Восточной Азии для совместной работы днём и запуска задач ночью. Перед переносом проверьте фактический доступ к репозиторию исходного кода и источникам зависимостей.

Токио, Япония

JP · UTC+9

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

Сеул, Южная Корея

KR · UTC+9

Подходит командам из Южной Кореи и Северо-Восточной Азии для проверки журналов сборки и артефактов. Тестируя удалённый рабочий стол, проверьте также ввод текста и передачу файлов.

Гонконг

HK · UTC+8

Подходит командам Южного Китая и Юго-Восточной Азии для совместной работы в дневное время. При доступе к репозиториям из другого региона отдельно проверьте стабильность соединения и загрузку зависимостей.

Восток США

US-E · UTC−5 / UTC−4

Подходит командам на востоке Северной Америки и удобно для взаимодействия с Западной Европой. Переход на летнее время меняет местное смещение; для запланированных задач рекомендуем явно указывать часовой пояс.

Запад США

US-W · UTC−8 / UTC−7

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

Статусы относятся к локациям в текущем каталоге. Фактическая доступность на момент заказа отображается в консоли. Узлы стабильно работают 365 дней в году; неполадки оборудования устраняются по процедуре обработки сбоев.

Обслуживание: выдача, проверка и устранение сбоев

Мы не скрываем проблемы с оборудованием в журналах сборки. При выдаче узла проверяем среду, а во время работы различаем ошибки приложения и сбои узла. Если требуется обслуживание оборудования, сначала определяем, как будут защищены данные и восстановлена работа.

  1. Подготовка и проверка при выдаче

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

  2. Проверка узла и поиск причин

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

  3. Обслуживание оборудования и проверка восстановления

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

Выберите подходящую конфигурацию

Сначала сверьте чип, память, диск и срок оплаты, а затем проверьте всё на своём проекте. Начните перенос очереди сборки с воспроизводимого Archive.

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