9 сентября Apple выложила Xcode 27 RC и открыла приём приложений под новые ОС. Там же, мелким шрифтом: с апреля 2027-го App Store перестанет принимать сборки со старыми SDK. Для команд, у которых CI — это пара Mac mini под столом, это знакомый ритуал: обновить macOS на агентах, обновить Xcode, пересобрать всё, что от этого отвалилось. В Xcode Cloud новая среда просто появляется в списке версий: прошлой осенью Xcode 26 стал доступен там в день релиза, 15 сентября.
Хороший повод наконец разобраться, что это за облако, сколько оно стоит и где заканчиваются его возможности. Спойлер к последнему: заканчиваются они ровно на границе экосистемы Apple, и про то, как жить с этой границей в компании с бекендом и Android-командой, будет отдельная статья.
Что это такое#
Xcode Cloud — управляемый CI/CD, встроенный в Xcode и App Store Connect. Вы не администрируете раннеры: сборки крутятся на Apple silicon в датацентрах Apple, версии macOS и Xcode выбираются из выпадающего списка.
Единица конфигурации — workflow. У него четыре части:
- условие запуска — изменение ветки или тега, pull request, расписание, ручной старт;
- окружение — версия Xcode и macOS (включая беты);
- действия — build, test, analyze, archive; тесты можно гнать параллельно на нескольких симуляторах;
- пост-действия — раздача в TestFlight, отправка в App Store, уведомления в Slack.
Git-провайдеры: GitHub, GitHub Enterprise, GitLab (включая self-managed), Bitbucket. Первый workflow создаётся из Xcode за один диалог: Integrate → Create Workflow, и минут через пятнадцать у вас первая облачная сборка — без единого YAML-файла и без обсуждения, на чьём столе будет жить билд-машина.
С прошлого года порог входа опустили ещё ниже: собирать и тестировать можно даже без платного членства в Developer Program. Для TestFlight и публикации аккаунт всё же понадобится.
Подпись перестаёт быть задачей#
Главная боль iOS CI исторически — не сборка. Это подпись: сертификаты, provisioning profiles, их тихое истечение, шифрованный репозиторий для fastlane match и вот это всё. Целый класс инструментов существует только потому, что подпись в CI — отдельная профессия.
В Xcode Cloud этой профессии нет. Cloud signing создаёт и ротирует сертификаты сам, профили обновляются без вашего участия, и заветное «у кого на маке лежит дистрибуционный сертификат?» из процесса исчезает. Это, пожалуй, сильнейший аргумент в пользу всего сервиса — сильнее цены.
Из приятного там же: статусы сборок прямо в pull request на GitHub (и их можно сделать обязательными для merge), отчёты о тестах и покрытии в самом Xcode, TestFlight-раздача как галочка в настройках workflow.
Экономика#
С января 2024-го в членство Developer Program ($99/год) входят 25 compute-часов в месяц. Дальше — платные тарифы:
| Тариф | Цена | Выходит за час |
|---|---|---|
| 25 часов | входит в membership | — |
| 100 часов | $50/мес | $0.50 |
| 250 часов | $100/мес | $0.40 |
| 1000 часов | $400/мес | $0.40 |
Для сравнения: macOS-раннер в GitHub Actions стоит $0.08 за минуту — $4.80 за час, почти на порядок дороже. Сравнение не совсем честное: железо разное, а в Xcode Cloud параллельные тестовые destination-ы списывают часы одновременно. Но даже с поправками облако Apple — одна из самых дешёвых macOS-сборок на рынке.
Неиспользованные часы сгорают в конце месяца. Прикидка на живом проекте: сборка с тестами минут на 12–15 — значит, бесплатных 25 часов хватает примерно на сотню прогонов. Соло-разработчику — за глаза. Команде из пяти человек с CI на каждый push — на неделю.
Где болит#
Теперь честная колонка «против», без неё картина не имеет смысла.
Только экосистема Apple. iOS, iPadOS, macOS, watchOS, tvOS, visionOS — и всё. Ни бекенда, ни Android, ни Docker, ни Linux. Xcode Cloud не станет CI вашей компании — только CI вашей iOS-команды.
Кастомизация — это три скрипта. Всё, что выходит за рамки стандартных действий, живёт в ci_scripts/: ci_post_clone.sh, ci_pre_xcodebuild.sh, ci_post_xcodebuild.sh. Произвольного графа шагов, как в GitHub Actions, нет. SPM-зависимости резолвятся из коробки, CocoaPods и свои тулы — руками через post-clone и Homebrew.
Конфигурация живёт не в git. Workflow настраивается в App Store Connect, а не в файле рядом с кодом. Через API его можно читать и создавать, но «конфиг как код» придётся строить самим — из коробки его нет.
Версии среды диктует Apple. В декабре в Xcode Cloud был известный баг: export archive для development-дистрибуции падал на Xcode 26.2, официальный workaround — «соберите на 26.1». Чинит Apple, а не вы, — но и сроки выбирает Apple, а не вы. Плюс очереди: перед крупными релизами сборки заметно дольше стоят в ожидании.
Секреты и политика. Секреты — это environment variables в интерфейсе App Store Connect. Интеграции с Vault нет, self-hosted раннеров нет и не будет: если у безопасности требование «сборки не покидают контур» — разговор окончен на этом пункте.
Кому да, кому нет#
Соло-разработчику и командам до ~5 iOS-инженеров с чисто эппловским продуктом — да, почти без раздумий. Бесплатных часов хватает, подпись исчезает как класс задач, TestFlight в двух кликах, а стоимость владения парой стареющих Mac mini обычно недооценивают ровно до апрельских дедлайнов App Store.
Командам с жёсткими требованиями к воспроизводимости, своим графом шагов, секретами в Vault и политикой «всё в контуре» — нет. Или, что интереснее, — гибрид: общий пайплайн компании остаётся где был, а Xcode Cloud становится в нём исполнителем одной конкретной роли — сборки и раздачи iOS-приложения.
Как устроен такой гибрид технически — запуск сборок через App Store Connect API, вебхуки обратно в пайплайн, артефакты и монорепо — разберу в следующей статье.



