Building and shipping Mac and iOS apps without opening Xcode
Вы можете собирать и публиковать macOS‑ и iOS‑приложения, не открывая Xcode ни разу: достаточно лишь установить Xcode.app, указать его как выбранный набор командной строки и использовать встроенные консольные утилиты xcodebuild, notarytool, stapler и devicectl. Скрипт release.sh, который вы пишете один раз, автоматизирует весь цикл — архивирование проекта, подпись сертификатом Developer ID, отправку на нотаризацию, подпись stapler‑ом и установку готового .app в /Applications. Подпись происходит через сертификат, хранящийся в login‑keychain, поэтому в репозитории нет секретов, а все ключи управляются системой keychain.
Первичная настройка требует лишь однократного доступа к графическому интерфейсу: принять лицензию Xcode, выполнить xcodebuild -license accept и -runFirstLaunch, добавить Apple‑ID в Accounts, создать Developer ID Application сертификат и задать пароль нотаризации. После этого можно генерировать проект.yml с помощью XcodeGen, игнорировать .xcodeproj в Git и полностью работать в терминале; при необходимости LLM‑ассистент (например, Claude Code) поможет выполнить команды. Всё, что осталось, — запускать release.sh и получать готовый, notarized пакет без открытия Xcode. Для публикации в App Store также требуется хранить пароль нотаризации в keychain, а процесс подписи можно полностью автоматизировать, вызывая xcodebuild из любого CI‑скрипта.