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