-
01
Подтвердите конфигурацию и узелКонфигурация, срок, город и расширение хранилища должны совпадать
-
02
Настройте среду XcodeПроверьте версии, инструменты командной строки, Git и менеджеры зависимостей
-
03
Выполните первое archiveЗафиксируйте scheme, параметры подписи и экспорта
-
04
Зарегистрируйте CI runnerИзолируйте рабочий каталог и настройте очистку после сборки
Подключите облачный Mac к процессу сборки Xcode
Руководство охватывает выбор конфигурации, заказ, подключение, настройку среды, первое archive и подключение CI runner. Выполняйте шаги по порядку: сначала настройте воспроизводимый процесс релиза, затем добавляйте параллельность и кэширование.
- 3 конфигурации
- Фиксированные конфигурации
- 4
- Доступных региона
- $20.7/день
- Минимальная цена
Перед началом зафиксируйте пять параметров
Скорость поставки зависит не от количества установленных инструментов, а от того, подтверждены ли заранее права аккаунта и репозитория, версия Xcode, узел и срок аренды.
Права разработчика
Убедитесь, что аккаунт Apple Developer имеет доступ к нужной команде, сертификатам, профилям и правам, необходимым для публикации. Не откладывайте проверку доступа к подписи до завершения archive.
Доступ к репозиторию
Подготовьте учётные данные с минимальными правами и проверьте доступ к основному репозиторию, приватным зависимостям, подмодулям и хранилищу больших файлов. Не используйте для CI личные долгосрочные учётные данные.
Версия Xcode
Точно зафиксируйте основную и сборочную версии проекта, а также проверьте совместимость Swift, SDK и инструментов командной строки. Версия runner должна быть фиксированной — не полагайтесь на временное переключение.
Расположение узла
Из Сингапура, Токио, Сеула и Гонконга сначала выберите узел, расположенный ближе к основным разработчикам, репозиторию и источникам зависимостей, затем проверьте выбор реальным подключением.
Срок аренды
Для временной проверки подписи начните с посуточной или понедельной оплаты; для постоянной разработки и фиксированного runner лучше выбрать месяц или квартал. Ориентируйтесь на реальный план сборок, а не на предполагаемую загрузку.
Выбирайте конфигурацию по нагрузке, а не по названию проекта
Все три варианта — выделенные физические машины Apple Silicon, не виртуальные машины. При выборе учитывайте число параллельных задач, объём зависимостей, размер кэша и потребность в единой памяти.
Go M4 Core
Подходит для проверки одного проекта, временной подписи, сборок Xcode с низкой параллельностью и краткосрочных задач, которым нужна выделенная среда.
- Чип
- M4
- Память
- 16GB
- Хранилище
- 256GB
Go M4 Plus
Подходит для нескольких повседневных проектов, установки зависимостей React Native или Flutter и очередей непрерывной интеграции с умеренной параллельностью.
- Чип
- M4
- Память
- 24GB
- Хранилище
- 512GB
Go M4 Pro
Подходит для сборок с высокой параллельностью, больших кэшей зависимостей и экспериментов с выводом AI, требующих большего объёма единой памяти и локального хранилища.
- Чип
- M4 Pro
- Память
- 64GB
- Хранилище
- 2TB
При заказе сразу подтвердите четыре группы параметров
Конфигуратор объединяет хост, срок, узел и дополнительные опции в одном заказе. Перед отправкой проверьте каждую строку, чтобы не переносить данные после создания среды.
Характеристики чипа, памяти и системного диска указаны на карточке конфигурации.
Срок дополнительных опций должен совпадать со сроком аренды хоста.
Сингапур, Токио, Сеул и Гонконг доступны в конфигураторе.
Можно добавить +1TB SSD, +2TB SSD или Thunderbolt 5 — по одному на машину.
Сначала выбирайте ближайший к основному рабочему процессу
Качество удалённого рабочего стола зависит от маршрута от разработчика до узла; скорость загрузки зависимостей также зависит от расположения репозитория и источников загрузки. Сначала выберите подходящий узел, затем протестируйте его на реальном проекте.
Ориентируйтесь на данные, возвращаемые консолью в реальном времени
Все комбинации в каталоге доступны для оформления заказа, а фактический статус при создании заказа возвращает консоль в реальном времени. Не делайте выводы о текущей доступности по скриншотам страницы.
Сначала проверьте через графический интерфейс, затем подключайте автоматизацию
После получения данных для доступа сначала через VNC проверьте рабочий стол, клавиатуру, сеть и состояние системы; убедившись, что базовая среда работает, используйте SSH для скриптов и задач runner.
Проверьте рабочий стол через VNC
Проверьте разрешение, раскладку клавиатуры, буфер обмена, часовой пояс и доступ к сети. При первой проверке не меняйте одновременно множество системных настроек — так проще локализовать проблему.
- Запишите адрес узла и время подключения
- Убедитесь, что сеанс рабочего стола можно использовать непрерывно
- Проверьте базовую загрузку и доступ к репозиторию
Передайте повторяющиеся задачи SSH
Оформите получение кода, установку зависимостей, очистку кэша и запуск сборки в воспроизводимые скрипты. Учётные данные должны иметь минимальные права и храниться отдельно от журналов и артефактов сборки.
- Ограничьте список проектов, доступных ключу
- Зафиксируйте точку входа скрипта и рабочий каталог
- Сохраняйте код возврата и журнал для неудачных команд
Настройте среду разработки воспроизводимым образом
Сначала проверьте систему и Xcode, затем устанавливайте инструменты проекта. Сохраняйте вывод версий на каждом шаге, чтобы runner мог отличить различия кода от различий хоста.
sw_vers
Проверить версию macOS
xcodebuild -version
Проверить версии Xcode и сборки
xcode-select -p
Проверить путь к инструментам командной строки
git --version
Проверить доступность Git
fastlane --version
Проверить версию инструмента автоматизации
-
01
Проверьте системную учётную запись
Проверьте текущего пользователя, домашний каталог, права администратора и точки монтирования диска. Не храните каталоги проекта на рабочем столе или во временной папке загрузок.
-
02
Завершите первый запуск Xcode
Откройте нужный Xcode, установите необходимые компоненты и убедитесь, что инструменты командной строки указывают на ту же версию.
-
03
Установите цепочку зависимостей проекта
Устанавливайте менеджер пакетов и зависимости согласно lock-файлам проекта; не обновляйте зафиксированные версии вслепую перед первой сборкой.
-
04
Зафиксируйте Fastlane и точки входа скриптов
Используйте ограничения версий проекта и разделите сборку, тестирование, архивирование и распространение на задачи, которые можно перезапускать независимо.
Первая облачная сборка Xcode должна проверить основной процесс
Цель первого запуска — не максимальная скорость, а проверяемый артефакт из чистого каталога. Зафиксируйте версию репозитория, scheme, подпись и способ экспорта, а оптимизацию кэша оставьте на потом.
Получите зафиксированную версию
Используйте конкретную ветку, тег или идентификатор коммита. Синхронизируйте подмодули и lock-файлы зависимостей, записав коммит, соответствующий этой сборке.
Проверьте scheme
Сначала выполните xcodebuild -list и проверьте доступные scheme. Убедитесь, что нужная scheme опубликована для общего доступа и подходит для сборки из командной строки.
Проверьте материалы подписи
Проверьте сертификаты, профили, Bundle Identifier и права команды. Пароли подписи нельзя хранить в репозитории или обычных журналах сборки.
Выполните archive
Явно укажите workspace или project, scheme, configuration и путь к архиву; при сбое сохраните полный код возврата и журнал.
Проверьте экспортированный артефакт
Проверьте имя артефакта, номер версии, номер сборки, результат подписи и размер файла, а также убедитесь, что цепочка распространения через TestFlight принимает его.
Передайте сборки self-hosted runner под контролируемое управление
Регистрируйте runner только после успешного первого archive. Главное — не просто быть «онлайн», а изолировать рабочие каталоги, чётко задать метки, ограничить права проекта и восстанавливать среду после каждой задачи.
Каждый runner использует отдельный путь
Храните исходный код, DerivedData, кэш зависимостей и экспортированные артефакты в разных каталогах. Не позволяйте параллельным задачам записывать в один путь архивирования.
Метки описывают возможности, а не временную задачу
Метки могут указывать регион, основную версию Xcode и уровень нагрузки. Не включайте в долгосрочные метки название проекта, имя сотрудника или краткосрочную ветку.
Авторизуйте только проекты, которым нужен запуск
Ограничьте репозитории и переменные, доступные runner. Права на подпись релизов и тестовые сборки разделяйте по рабочим процессам.
Удаляйте чувствительные остатки после завершения задачи
Удаляйте временные учётные данные, конфигурации экспорта и ненужные артефакты; управляйте кэшем по каталогу, объёму и времени обновления, не очищая всё без разбора.
Проведите финальную проверку перед запуском
Добавьте пункты ниже в командное руководство по эксплуатации. Только после успешной проверки runner готов принимать задачи непрерывной сборки и распространения через TestFlight.
Сертификаты и профили
Проверьте срок действия, принадлежность команде, Bundle Identifier и область использования, а также назначьте ответственного за обновление.
Свободное место на диске
Проверьте объём исходного кода, DerivedData, кэша зависимостей, архивов и экспортированных артефактов; оставьте запас для последовательных сборок.
Стратегия кэширования
Определите, какие каталоги можно повторно использовать, когда кэш становится недействительным, его максимальный объём и условия очистки. Не кэшируйте пароли подписи и временные токены.
Цепочка TestFlight
Проведите сквозную проверку от экспорта архива до завершения загрузки и убедитесь, что версия, номер сборки и журнал релиза согласованы.
Удаление конфиденциальных данных
Проверьте репозиторий, файлы среды, историю команд и журналы сборки; удалите ключи, токены и пароли подписи, которые не должны храниться постоянно.
Порядок эскалации при сбое
Запишите номер заказа, узел, время воспроизведения, журнал ошибки и выполненные шаги; если нужна помощь, отправьте тикет через консоль.
Готовы? Начните с одного выделенного узла
Выберите конфигурацию, срок и узел, сначала выполните первое архивирование Xcode, затем подключите стабильную команду к очереди CI.