ios-app-store-submit — скилл

Скилл Claude Code ведет iOS и Flutter приложение от архива и подписи до отправки в App Store и разбора отказа ревью.

  • 144 ★ репозитория
  • Последний коммит
Скилл

Широкий доступ

Почему такой уровень

  • Скилл подписывает и загружает сборки и может отправлять версию на ревью через ключ App Store Connect API.
  • Ключ и связка подписи дают доступ к вашему аккаунту разработчика: держите их только локально.
Все причины и проверки

zestfulpulse/ios-app-store-submit

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/ios-app-store-submit

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Скилл подписывает и загружает сборки и может отправлять версию на ревью через ключ App Store Connect API.
  • Ключ и связка подписи дают доступ к вашему аккаунту разработчика: держите их только локально.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Скилл ios-app-store-submit проводит приложение по цепочке «архив, загрузка, отправка» в App Store Connect и перед отправкой проверяет, готово ли оно к ревью. Скрипт `scripts/readiness_check.py` оценивает техническую готовность, метаданные, правила Apple Review Guidelines, приватность (разрешения, `PrivacyInfo.xcprivacy`, SDK) и соответствие HIG. Недостающие данные получают статус `UNKNOWN`, а не `PASS`. Безопасные правки идут по схеме план, применение, проверка, откат. После отказа ревью скилл разбирает письмо Apple, находит причину, составляет план исправления и черновик ответа, а повторную отправку выполняет только по подтвержденному дайджесту плана. Для сборки и загрузки используется CLI `asc` и ключ App Store Connect API.

Для кого. Мобильным разработчикам на iOS и Flutter, которые отправляют сборки в App Store через агента на Mac без графической сессии Xcode.

Подходит, если

  • Перед первой отправкой надо понять, пройдет ли приложение проверку по разрешениям и политике приватности.
  • Сборку нужно заархивировать, подписать на Mac без графической сессии и загрузить в App Store Connect.
  • Apple отклонила версию, и по тексту отказа требуется план исправления и ответ ревьюеру.
  • Команда хочет автоматический отчет о готовности с доказательствами, а не обещание «все хорошо».

Не подходит, если

  • Работа идет только над интерфейсом или функциями без сборки и отправки.
  • Подпись и сертификаты вы настраиваете сами в графическом Xcode: скилл ориентирован на сборку без окна.
  • Нет членства в Apple Developer Program и доступа к App Store Connect.

Пример запроса к агенту

Прогони проверку готовности этого iOS-проекта перед отправкой и покажи блокирующие проблемы с доказательствами, ничего не отправляя.

Ограничения

Нужны членство в Apple Developer Program, Xcode, Flutter, CLI `asc` и ключ App Store Connect API в `~/.asc/keys/` с правами только для владельца. Ключ создает администратор аккаунта сам, агенту его передают файлом, а не текстом в чат. Рекомендуется роль App Manager. Статус `PASS` не гарантирует одобрение Apple. Изменения подписи, идентификаторов, смысла приватности и юридических текстов скилл без вашего подтверждения не делает. Проверки без данных остаются `UNKNOWN`.

Как отключить. Удалите ссылку `~/.claude/skills/ios-app-store-submit` и клон в `~/.agents/skills/`. Ключ API и связку для сборки уберите отдельно.

Частые вопросы

Как поставить скилл в Claude Code?

Склонируйте репозиторий в `~/.agents/skills/ios-app-store-submit` и создайте символическую ссылку на него в `~/.claude/skills/`. Команды приведены в README.

Что означает UNKNOWN в отчете?

Для проверки не хватило данных. Такой результат не считается успехом и требует ручной проверки или доказательства.

Отправит ли скилл приложение сам?

Только после архивации и загрузки по рабочему процессу и при явном подтверждении. Проверочные режимы ничего во внешних сервисах не меняют.

Что делает скилл после отказа Apple?

Разбирает причину, строит план исправления и проверки, готовит черновик ответа. Повторная отправка идет только по одобренному дайджесту плана.

Нужен ли Flutter?

Скилл написан для Flutter и iOS и описывает сборку обоих вариантов, при этом не привязан к одному приложению.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Скилл проверяет проект iOS или macOS на частые причины отказа в App Store до отправки на ревью

СкиллРасширенный доступ1,4 тыс.Звезды репозитория

Скилл Claude Code проверяет iOS-приложение до App Store: пункт правил, улики в коде, исправление и уверенность по каждой находке.

СкиллМинимальный доступ81Звезды репозитория

Хук-страж перед отправкой сборки в App Store и Google Play находит критичные причины отказа и блокирует команду до исправления.

СкиллРасширенный доступ425Звезды репозитория

Агент сверяет код приложения Apple с каждым пунктом правил App Store и показывает, что может привести к отказу при отправке

СкиллМинимальный доступ451Звезды репозитория

Плагин Claude Code проверяет мобильное приложение на соответствие правилам App Store и Google Play до отправки в магазин.

ПлагинМинимальный доступ106Звезды репозитория

CLI на Swift для App Store Connect: сборки, TestFlight, метаданные, подписки и отправка на ревью с готовыми командами в JSON

CLIШирокий доступ397Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйЗвезды репозиторияГлавное отличие
ios-app-store-submit (эта карточка)нет144
App Store Preflightнет1 414проверяет приложение перед отправкой; ios-app-store-submit добавляет сборку, подпись, загрузку и разбор отказа
App Store Connect CLIнет8 335дает команды управления App Store Connect; здесь они встроены в сценарий релиза с проверками

Коротко о README

Версия 2.0.0 объединяет семь этапов: готовность, предпроверку Apple, приватность, дизайн по HIG, безопасные исправления, разбор отказа и замкнутую повторную отправку. Принципы: доказательства раньше уверенности, исправления только безопасные, заявление «исправлено» только с проверкой.

Бейдж для README

Исходный SKILL.md

---
name: ios-app-store-submit
description: Build, sign, and submit a Flutter/iOS app to the App Store Connect — covers Xcode archive/export, code signing (including headless-Mac keychain workarounds), the `asc` CLI for App Store Connect metadata automation, screenshot handoff, and final review submission. Use when asked to build and upload an iOS app, set up App Store code signing, fix a rejected/failed App Store Connect upload, automate App Store Connect metadata, or submit an app for App Store review. Triggers: "빌드해서 제출", "App Store 제출", "archive and upload", "TestFlight에 올려줘", "asc CLI로 메타데이터".
---

# iOS App Store Build & Submit

End-to-end playbook for taking a Flutter/iOS app from "code is done" to "submitted for App Store review," written for headless/agent-driven Mac environments (no interactive Xcode GUI session, no GUI keychain prompts available). Validated end-to-end on a real submission (2026-08-05) that hit — and worked around — every pitfall documented below.

**This skill is project-agnostic.** Never hardcode bundle IDs, App Store Connect App IDs, Team IDs, or certificate names from a prior run — always derive them from the current project (see Step 0).

## When NOT to use this

- Pure UI/feature work with no build/signing/submission component — just do the work directly.
- If the user has an interactive Xcode session open and wants to do signing themselves — offer to guide them through Xcode's GUI instead of fighting headless keychain limitations for no reason.

## Step 0 — Discover the project

Before anything else, gather facts from the current project (don't ask the user for things you can read yourself):

```bash
# Bundle ID, team ID, current device family
grep -n "PRODUCT_BUNDLE_IDENTIFIER\|DEVELOPMENT_TEAM\|TARGETED_DEVICE_FAMILY" ios/Runner.xcodeproj/project.pbxproj | sort -u

# App version / build number
grep "^version:" pubspec.yaml   # Flutter: X.Y.Z+N

# Is asc CLI already installed and authenticated?
which asc && asc auth status

# Is this app already registered in App Store Connect?
asc apps list --output table
```

If `asc` isn't installed or there's no cached auth, walk the user through generating an App Store Connect API key (they must do this themselves — only the account holder/Admin can):
1. https://appstoreconnect.apple.com/access/integrations/api → generate key → **App Manager** role (least privilege that still covers everything this skill needs) → download the `.p8` immediately (one-time download).
2. Get the file to you as a file (Drive link, etc.), never ask them to paste the raw key text in chat. Save it under `~/.asc/keys/` with `chmod 600`.
3. Register it:
   ```bash
   asc auth login --name "<project>" --key-id "<KEY_ID>" --issuer-id "<ISSUER_ID>" \
     --private-key "~/.asc/keys/AuthKey_<KEY_ID>.p8" --network --bypass-keychain
   ```
   **`--bypass-keychain` is required in headless sessions** — plain `asc auth login` fails with `-25308 User interaction is not allowed` because macOS Keychain wants a GUI unlock prompt that doesn't exist here.

## Step 1 — iOS Simulator does not work for ML/vision-heavy apps on Apple Silicon

Сообщить о проблеме