// приложение для строки меню macOS · open source
Собирайте и запускайте Xcode-проекты из строки меню.
Xcode Pilot сам вызывает xcodebuild, simctl и devicectl. Выберите схему и устройство, нажмите ⌃⌥⌘R в любом приложении — ошибки и вывод print появятся прямо в панели. Xcode.app при этом может быть закрыт.
скачать для macOS ↓исходники на GitHub
- macOS 14+
- Xcode 26
- лицензия MIT



// панель
Всё, ради чего открывают Xcode
01/03
Ошибки и предупреждения
С фрагментом кода от компилятора и фильтром по типу. Любую ошибку можно скопировать в формате file:line:col: error: …, скопировать все разом или открыть на нужной строке в Xcode, VS Code, Cursor или Zed. После сборки список сверяется с .xcresult, так что ничего не теряется и не дублируется.

02/03
Лог сборки
Краткий — задачи, диагностика и результат — или полный, с поиском по ⌘F. Его можно скопировать одной кнопкой или открыть полный лог файлом.

03/03
Консоль запущенного приложения
Run собирает, ставит и запускает приложение на симуляторе, подключённом устройстве или Mac и остаётся к нему подключённым: вывод print идёт сюда. Фильтр — как в Xcode: Return превращает текст в токен, токен с минусом в начале скрывает строки.

// возможности
Мелочи, из которых всё и складывается
01 Любой проект
.xcodeproj,.xcworkspaceили Swift-пакет. Недавние проекты запоминаются, а те, что недавно открывал Xcode, подтягиваются из DerivedData.02 Схема, устройство, конфигурация
Как в тулбаре Xcode. Список устройств берётся из
xcodebuild -showdestinations, поэтому в нём только то, на чём схема реально запускается.03 Архивы
Кладутся туда же, куда их кладёт Xcode, и сразу видны в Organizer. Экспорт для App Store Connect, Ad Hoc, Development, Enterprise или Developer ID и загрузка в App Store Connect — прямо из панели.
04 Устройства и симуляторы
Вкладка с симуляторами (загрузить, выключить, показать) и подключёнными девайсами, любой можно выбрать для запуска. Organizer и Devices and Simulators — в один клик.
05 Уведомления и звуки
Уведомление, если сборка закончилась при закрытой панели, звуки по желанию, запуск при входе.
06 Несколько Xcode
Выбор версии Xcode для сборки, если их установлено несколько. Панель можно открепить в отдельное окно, чтобы она не закрывалась.
// клавиши
Руки остаются на клавиатуре
из любого приложения
- ⌃⌥⌘Rзапустить
- ⌃⌥⌘Bсобрать
- ⌃⌥⌘.остановить
- ⌃⌥⌘Xпоказать или скрыть панель
в панели
- ⌘Rзапустить
- ⌘Bсобрать
- ⌘.остановить
- ⌘Uтесты
- ⇧⌘Kочистить сборку
// под капотом
Только инструменты командной строки Apple
Никаких приватных фреймворков и плагинов для Xcode. Xcode Pilot запускает те же утилиты, что вы запустили бы в терминале, и разбирает их вывод. DerivedData общая с Xcode, поэтому инкрементальная сборка работает и там, и тут.
Разрешения
- Универсальный доступ — только для кнопок Organizer и Devices and Simulators. У Xcode нет ни URL-схемы, ни AppleScript-команды для этих окон, поэтому приложение нажимает их пункты в меню Window.
- Уведомления — спрашиваются при первом уведомлении о завершении сборки.
$ xcodebuild build -project Forecast.xcodeproj -scheme Forecast \
-destination id=4F2A…C91E -resultBundlePath Build.xcresult
** BUILD SUCCEEDED **
$ xcrun xcresulttool get build-results --path Build.xcresult --compact
$ xcrun simctl install 4F2A…C91E Forecast.app
$ xcrun simctl launch --console-pty 4F2A…C91E dev.example.Forecast
[network] GET /v1/forecast?city=Lisbon
[network] 200 OK forecast?city=Lisbon (142 ms)// стоит знать
Ограничения
- Пока Xcode сам собирает тот же проект, параллельная сборка из Xcode Pilot ждёт блокировку DerivedData: у них одна папка на двоих.
- Пакеты с макросами и плагинами, которым ни разу не доверяли в Xcode, через
xcodebuildне соберутся. Для них в настройках есть «Не проверять макросы и плагины». - Запуск на Mac в режиме «Designed for iPad» не поддерживается, такие устройства скрыты.
- Прогресс сборки — оценка по прошлой успешной сборке той же схемы:
xcodebuildне сообщает общее число задач.
// установка
Бесплатно и с открытым кодом
Скачайте нотаризованный DMG, перетащите Xcode Pilot в «Программы» и запустите: он живёт в строке меню. Распространяется по лицензии MIT.
// или соберите из исходников в Xcode 26
# генераторы проекта и линтер
brew install xcodegen swiftgen swiftlint
git clone https://github.com/ivoneug/xcode-pilot.git
# создаёт XcodePilot.xcodeproj
cd xcode-pilot/Scripts && ./generateProject.sh
open ../XcodePilot.xcodeprojУкажите свою команду в Scripts/project.env (DEVELOPMENT_TEAM_ID) и запустите схему XcodePilot. Подпись своей командой нужна, чтобы macOS не сбрасывала разрешение на универсальный доступ после каждой пересборки.




