К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

app-store-preflight-skills — скилл Claude Code: префлайт App Store

Прогоняет проект Xcode по типовым причинам отказа App Store ещё до отправки: метаданные, подписки, privacy-манифесты, entitlements, дизайн.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add truongduy2611/app-store-preflight-skills --skill app-store-preflight-skills -a claude-code
Открыть на GitHub

Что делает app-store-preflight-skills

Скилл идёт по проекту iOS или macOS и ищет то, за что Apple заворачивает сборки. Сначала определяет тип приложения и подгружает чек-лист из references/guidelines/by-app-type/: всегда all_apps.md, плюс файл под подписки, UGC, игры, macOS, AI-приложения, крипту или VPN.

Дальше тянет актуальное описание командой asc metadata pull --app "<APP_ID>" --version "<VERSION>" --dir ./metadata и сверяет JSON с правилами из references/rules/. В каждом правиле расписано, что искать, как это найти, чем чинить и как выглядит пример отказа. На выходе отчёт: отказы, предупреждения, пройденные проверки — по убыванию важности.

Мелочи скилл правит сам: имена конкурентов в тексте, превышение лимита символов, ссылки на условия и политику. После правки он прогоняет упавшую проверку заново и снимает пункт только при чистом повторе. Для asc нужна авторизация в App Store Connect — asc auth login или переменные ASC_KEY_ID, ASC_ISSUER_ID и приватный ключ; без неё шаг с метаданными не выполнится. Ещё один капкан: PrivacyInfo.xcprivacy требуется, даже если ваш код не зовёт Required Reason API — сторонние SDK вроде Firebase дотягивают требование через себя.

Какие задачи решает

  • найти метаданные, из-за которых Apple отклонит сборку
  • проверить экран подписки на ссылки с условиями и политикой
  • добавить PrivacyInfo.xcprivacy до следующей загрузки билда
  • переписать описание без имён конкурентов
  • разобрать письмо об отказе и получить список правок

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

  • Прогони префлайт по проекту перед отправкой в App Store, там есть подписки.
  • Собери метаданные через `asc metadata pull --app "<APP_ID>" --version "<VERSION>"` и проверь их по правилам.
  • Пришёл отказ по 2.3.14 — посмотри креативы и скажи, что не так.

Как установить app-store-preflight-skills

1Через Skills CLI (Vercel)

npx skills add truongduy2611/app-store-preflight-skills --skill app-store-preflight-skills -a claude-code

2Вручную: положить файлы

~/.claude/skills/app-store-preflight-skills/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/app-store-preflight-skills/

Похожие

react-native-brownfield-migration callstackincubator Помогает пошагово внедрять React Native или Expo в нативные приложения iOS и Android с помощью @callstack/react-native-brownfield. Claude Code CX Codex Cursor +1 5 200установок ios-hig-design wondelai Скилл помогает проектировать нативные iOS-интерфейсы в соответствии с Human Interface Guidelines Apple. Пригодится, когда вы делаете приложение для iPhone или iPad и хотите, чтобы оно выглядело как родное для платформы. Claude Code CX Codex Cursor +1 8 100установок goldie software-mansion-labs Скилл собирает скриншоты и превью-видео для App Store и Google Play: проходит по экранам приложения на симуляторе, одевает кадры в рамки и открывает студию со страницей стора. Claude Code CX Codex Cursor +1 1 300установок serve-sim EvanBacon Скилл учит агента рулить запущенным симулятором iOS, iPad и Apple Watch через npx serve-sim: тапы, жесты, кнопки, поворот, камера. Claude Code CX Codex Cursor +1 1 100установок migrate-nativewind-to-uniwind uni-stack Скилл автоматизирует переход React Native проекта с NativeWind на Uniwind. Он обновляет конфиг, удаляет старые пакеты, перестраивает CSS и обрабатывает все breaking changes. Claude Code CX Codex Cursor +1 2 000установок swiftui-view-refactor официальный OpenAI Скилл наводит порядок в коде SwiftUI: делит разросшиеся экраны на отдельные структуры View и выносит побочные эффекты из body. CX Codex GP ChatGPT 113установок vercel-react-native-skills vercel Набор правил по React Native и Expo для ИИ-агента: списки, анимации, навигация. Пригодится, когда агент правит мобильный код и надо, чтобы он делал это одинаково. Claude Code CX Codex Cursor +1 253 900установок animate-expo emilkowalski Создаёт мобильные анимации для React Native и Expo на базе Reanimated и Gesture Handler. Помогает избежать просадок кадров на реальных устройствах. Claude Code CX Codex Cursor +1 135 900установок

Вопросы о app-store-preflight-skills

Как установить app-store-preflight-skills в Claude Code?

Выполните npx skills add truongduy2611/app-store-preflight-skills --skill app-store-preflight-skills -a claude-code. Файл скилла окажется по пути ~/.claude/skills/app-store-preflight-skills/SKILL.md.

Что делает app-store-preflight-skills?

Сканирует проект Xcode на причины отказа App Store и собирает отчёт с разбивкой на отказы, предупреждения и пройденные проверки. Часть нарушений в тексте метаданных он предлагает исправить сразу.

Что нужно поставить заранее?

CLI asc — brew install asc через Homebrew. Команде asc metadata pull нужна авторизация в App Store Connect: asc auth login либо переменные ASC_KEY_ID, ASC_ISSUER_ID и приватный ключ.

Исходный текст

SKILL.md · MIT
---
name: app-store-preflight-skills
description: >
  Scan an iOS/macOS Xcode project for common App Store rejection patterns before
  submission. Use when preparing an app for App Store review, after receiving a
  rejection from Apple, or when auditing metadata, subscriptions, privacy manifests,
  entitlements, or design compliance. Integrates with the asc CLI for metadata inspection.
metadata:
  author: truongduy2611
  version: "1.1"
  guidelines-synced: "2026-10-16"
---

# App Store Preflight Skill

Run pre-submission checks on your iOS/macOS project to catch common App Store rejection patterns.

## Prerequisites

- **asc CLI** — Install via Homebrew: `brew install asc` ([App-Store-Connect-CLI](https://github.com/rudrankriyam/App-Store-Connect-CLI))
- **ASC CLI Skills** — [app-store-connect-cli-skills](https://github.com/rudrankriyam/app-store-connect-cli-skills) for `asc` usage patterns
- **jq** — Optional, but used by some JSON-inspection examples in the rule docs

## Step 1: Identify App Type → Load Checklist

Determine which guidelines apply by loading the relevant checklist from `references/guidelines/by-app-type/`. Always start with `all_apps.md`, then add the app-type-specific one:

| App Type | Checklist |
|----------|-----------|
| Every app | `references/guidelines/by-app-type/all_apps.md` |
| Subscriptions / IAP | `references/guidelines/by-app-type/subscription_iap.md` |
| Social / UGC | `references/guidelines/by-app-type/social_ugc.md` |
| Kids Category | `references/guidelines/by-app-type/kids.md` |
| Health & Fitness | `references/guidelines/by-app-type/health_fitness.md` |
| Games | `references/guidelines/by-app-type/games.md` |
| macOS | `references/guidelines/by-app-type/macos.md` |
| AI / Generative AI | `references/guidelines/by-app-type/ai_apps.md` |
| Crypto & Finance | `references/guidelines/by-app-type/crypto_finance.md` |
| VPN | `references/guidelines/by-app-type/vpn.md` |

Full guideline index: `references/guidelines/README.md`

## Step 2: Pull Metadata for Inspection

Pull the latest App Store metadata using the `asc` CLI:

```bash
# Pull canonical metadata JSON for the version you want to review
asc metadata pull --app "<APP_ID>" --version "<VERSION>" --dir ./metadata
```

`asc metadata pull` writes app info files to `./metadata/app-info/*.json` and
version-localization files to `./metadata/version/<VERSION>/*.json`.

Most rule examples below assume the canonical JSON layout written by
`asc metadata pull`.

Creative assets (product page headers, search result assets; Guideline 2.3.14)
live in App Store Connect's Asset Library. If your `asc` version doesn't pull
them, review them by hand against 2.3.14.

If you already have metadata in another layout (for example fastlane
`metadata/`), either adapt the file-path examples to that structure or pull the
canonical `asc` layout first.

## Step 3: Run Rejection Rule Checks

For each category, load the relevant rule files from `references/rules/` and inspect. Each rule contains: **What to Check**, **How to Detect**, **Resolution**, and **Example Rejection**.

| Category | Rule Files |
|----------|------------|
| Metadata | `references/rules/metadata/*.md` |
| Subscription | `references/rules/subscription/*.md` |
| Privacy | `references/rules/privacy/*.md` |
| Design | `references/rules/design/*.md` |
| Entitlements | `references/rules/entitlements/*.md` |

## Step 4: Report Findings

Produce a summary report using this template:

```markdown
## Preflight Report

### ❌ Rejections Found (N)
- [GUIDELINE X.X.X] Description of issue
  - File: path/to/offending/file
  - Fix: What to do

### ⚠️ Warnings (N)
- [GUIDELINE X.X.X] Potential issue

### ✅ Passed (N)
- [Category] All checks passed
```

Order by severity: rejections first, then warnings, then passed.

## Step 5: Autofix + Validate

Some issues can be auto-fixed:
- **Competitor terms** → Suggest replacement text with competitor names removed
- **Metadata character limits** → Show current vs. max length
- **Missing links** → Generate template ToS/PP URLs

After applying any auto-fix, **re-run the affected checks** to confirm the fix resolved the violation. Only mark as resolved once the re-scan passes.

For issues requiring manual intervention (screenshots, UI redesign), provide clear instructions but do not auto-fix.

## Gotchas

- **China storefront** — Banned AI terms (ChatGPT, Gemini, etc.) are checked across ALL locales, not just `zh-Hans`. Apple checks every locale visible in the China storefront.
- **Privacy manifests** — `PrivacyInfo.xcprivacy` is required even if your app doesn't call Required Reason APIs directly. Third-party SDKs (Firebase, Amplitude, etc.) that use `UserDefaults` or `NSFileManager` trigger this requirement transitively.
- **asc auth** — `asc metadata pull` requires App Store Connect authentication. Run `asc auth login` first, or set `ASC_KEY_ID`, `ASC_ISSUER_ID`, and one of `ASC_PRIVATE_KEY_PATH` / `ASC_PRIVATE_KEY` / `ASC_PRIVATE_KEY_B64`. If you're unsure what `asc` is picking up, run `asc auth doctor`.
- **Subscription metadata** — Apple requires ToS/PP links in BOTH the App Store description AND the in-app subscription purchase screen. Missing either one is a separate rejection.
- **Hidden features (2.5.19)** — Feature flags are allowed, but every feature they can turn on must be in the reviewed build, reachable by the reviewer, and described in the review notes. Gating features on review-environment checks (sandbox receipt, TestFlight) is bait-and-switch and can get the developer account terminated.
- **Third-party AI (5.1.2(i))** — Proxying AI calls through your own backend doesn't exempt you: if prompts or user content reach OpenAI, Gemini, Anthropic, etc., the app needs a consent screen naming the provider *before* the first request.
- **Sign in with Apple relay domain** — New relay addresses use `private.icloud.com` (from late 2026) in addition to `privaterelay.appleid.com`. Hard-coded domain checks break for new users.
- **SDK minimum** — Uploads must be built with the iOS 26 SDK or later (since April 28, 2026). An older Xcode fails at upload, not at review.
- **macOS entitlements** — Apple will ask you to justify every temporary exception entitlement (`com.apple.security.temporary-exception.*`). Remove entitlements you don't actively use.

## Adding New Rules

Create a `.md` file in the appropriate `references/rules/` subdirectory:

```markdown
# Rule: [Short Title]
- **Guideline**: [Apple Guideline Number]
- **Severity**: REJECTION | WARNING
- **Category**: metadata | subscription | privacy | design | entitlements

## What to Check
## How to Detect
## Resolution
## Example Rejection
```

© truongduy2611 · MIT · truongduy2611/app-store-preflight-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой