ios-app-store-submit — скилл
Скилл Claude Code ведет iOS и Flutter приложение от архива и подписи до отправки в App Store и разбора отказа ревью.
- 144 ★ репозитория
- Последний коммит
Широкий доступ
Почему такой уровень
- Скилл подписывает и загружает сборки и может отправлять версию на ревью через ключ App Store Connect API.
- Ключ и связка подписи дают доступ к вашему аккаунту разработчика: держите их только локально.
Установка
- Работает в
В терминале, через 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 до отправки на ревью
Скилл Claude Code проверяет iOS-приложение до App Store: пункт правил, улики в коде, исправление и уверенность по каждой находке.
Хук-страж перед отправкой сборки в App Store и Google Play находит критичные причины отказа и блокирует команду до исправления.
Агент сверяет код приложения Apple с каждым пунктом правил App Store и показывает, что может привести к отказу при отправке
Плагин Claude Code проверяет мобильное приложение на соответствие правилам App Store и Google Play до отправки в магазин.
CLI на Swift для App Store Connect: сборки, TestFlight, метаданные, подписки и отправка на ревью с готовыми командами в JSON
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| 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