Главная · Скиллы · xcode-project-setup

xcode-project-setupнастройка проекта Xcode Firebase

firebase/agent-skills

Настройка проекта Xcode.

Установка

npx -y skills add firebase/agent-skills --skill xcode-project-setup --agent claude-code

Xcode 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 проект происходят два отдельных шага:

  1. Добавление зависимости пакета в проект (разрешает репозиторий, версию)
  2. Линковка конкретных продуктов пакета с целевыми таргетами

Скрипт xcode_spm_setup обрабатывает оба шага безопасно, без прямой модификации .pbxproj.

Из того же репозитория

firebase-basicsосновы Firebase CLI
firebase/agent-skills
Базовые воркфлоу Firebase CLI для любого проекта. Принудительно использует последние инструменты через npx вместо глобальных устаревших версий.
34871.3k установок
firebase-auth-basicsаутентификация Firebase
firebase/agent-skills
Настройка и реализация Firebase Authentication: вход пользователей, управление аккаунтами, провайдеры OAuth для разных типов приложений.
34870.8k установок
firebase-hosting-basicsхостинг статических сайтов Firebase
firebase/agent-skills
Деплой статических сайтов и SPA на Firebase Hosting: конфигурация firebase.json для редиректов, rewrites и заголовков. Команды деплоя и превью.
34869.1k установок
firebase-app-hosting-basicsFirebase App Hosting для Next.js
firebase/agent-skills
Полный пайплайн деплоя Next.js и Angular на Firebase App Hosting: SSR и ISR. Настройка firebase.json с apphosting блоками и CDN.
34868.8k установок
firebase-data-connectFirebase SQL Connect с PostgreSQL
firebase/agent-skills
Комплексный помощник для Firebase SQL Connect (Data Connect) с PostgreSQL и GraphQL: схема → мутации → запросы → SDK и деплой в продакшен.
32768.4k установок
developing-genkit-jsAI агенты на Genkit JS
firebase/agent-skills
Для Genkit 1.0+ где API полностью изменились и большинство примеров в сети устарели. Принудительно проверяет common-errors.md перед любым кодом.
32762.1k установок