xcode-project-setupнастройка проекта Xcode Firebase
Настройка проекта Xcode.
Установка
npx -y skills add firebase/agent-skills --skill xcode-project-setup --agent claude-codeXcode Project Setup
Безопасное изменение Xcode проектов (.pbxproj) для добавления Swift Packages и линковки файлов. Используйте когда iOS проекту нужны зависимости (Firebase, Alamofire и т.д.).
Требования: macOS + Swift установлен локально.
Критические правила
1. Запрет Ruby
Строго запрещено использовать Ruby, Rails или любые Ruby gems (включая xcodeproj). Никаких Ruby скриптов ни при каких условиях.
2. Синхронизация папок в современном Xcode
Современные Xcode проекты поддерживают синхронизацию папок. При добавлении новых .swift или ресурсных файлов — просто запишите их в правильную директорию на диске. Они будут включены автоматически. Никогда не редактируйте .pbxproj вручную для добавления файлов.
3. Разрешённые языки скриптов
Если нужен скрипт — используйте Swift. Только в качестве крайней меры допускается Node.js или TypeScript.
4. Проверка тулчейна
swift --version
Если Swift не найден — остановитесь и порекомендуйте: xcode-select --install. Не продолжайте без Swift.
5. Обязательные линкер-флаги для статических фреймворков (Firebase)
SPM-зависимости, опирающиеся на Objective-C категории и методы +load (Firebase iOS SDK), при статической линковке могут быть вырезаны линкером Apple — что приводит к фатальным сбоям в рантайме.
Предоставленный скрипт xcode_spm_setup автоматически добавляет флаг -ObjC в OTHER_LDFLAGS при добавлении Firebase продуктов. Проверьте его наличие в настройках сборки при возникновении проблем.
Пустая директория
Если .xcodeproj или .xcworkspace не существует — попросите пользователя создать проект сначала вручную в Xcode и дождитесь подтверждения.
Стандартный рабочий процесс Xcode
Не используйте raw text parsing, sed или Ruby для изменения .pbxproj.
Вместо этого выполните Swift-скрипт из этого скилла (scripts/xcode_spm_setup) для безопасной установки SPM-пакетов и линковки конфигурационных файлов (например GoogleService-Info.plist).
Всегда используйте последнюю версию SDK
Проверьте актуальную версию Firebase iOS SDK на github.com/firebase/firebase-ios-sdk/releases и используйте последний номер версии (например 11.x.y) вместо закреплённых заглушек.
Что делает скрипт
При добавлении Swift Package в Xcode проект происходят два отдельных шага:
- Добавление зависимости пакета в проект (разрешает репозиторий, версию)
- Линковка конкретных продуктов пакета с целевыми таргетами
Скрипт xcode_spm_setup обрабатывает оба шага безопасно, без прямой модификации .pbxproj.
