Santé des soumissions ASC

VérifiéPrudence

Effectuez des pré-vérifications des soumissions à l'App Store, soumettez des builds et surveillez l'état des révisions avec asc. À utiliser lors de l'envoi ou du dépannage des soumissions de révision.

Spar Skills Guide Bot
DevOpsIntermédiaire
28/07/2026
Claude CodeCodex
#app-store#ios#release#submission#cli

Recommandé pour

Synthèse automatique

Ce skill guide l'agent dans l'utilisation de la CLI `asc` pour vérifier, soumettre et suivre la santé d'une soumission App Store avant et pendant la revue.

Points forts

  • Checklist de pré-soumission en 9 étapes couvrant build, chiffrement, droits de contenu, métadonnées, localisations, captures et privacy
  • Commandes `asc` concrètes et copiables pour chaque vérification, avec valeurs attendues explicites
  • Distingue clairement ce que l'API publique peut vérifier de ce qui doit être confirmé à la main (App Privacy) et propose les commandes `asc web privacy` en repli
  • Traite des cas souvent oubliés : déclaration d'exemption de chiffrement et content rights obligatoires

Limites

  • Suppose la CLI `asc` installée, authentifiée, avec APP_ID, VERSION_ID et BUILD_ID déjà résolus
  • L'état de publication App Privacy n'est pas vérifiable via l'API publique : dépend de commandes `asc web privacy` présentées comme expérimentales
  • Le document fourni s'arrête au milieu de la section sur les IAP/abonnements, qui reste donc incomplète
Quand l'utiliser

À utiliser juste avant de soumettre un build iOS à la revue App Store, ou pour diagnostiquer une soumission bloquée ou rejetée.

Quand l'éviter

À ne pas utiliser pour des releases Android/Google Play, ni pour écrire le code ou l'interface de l'application.

Analyse de sécurité

Prudence
Score qualité82/100

This is a straightforward operational runbook for the `asc` App Store Connect CLI. It never pipes remote content to a shell, never reads or transmits credentials, and uses only documented subcommands with `--confirm` on destructive actions. The residual risk is ordinary operational risk: it drives network calls that mutate real submission, privacy, and encryption-declaration state, and it recommends an experimental web-session auth path. That warrants a caution label rather than safe, but nothing here looks malicious.

Points d'attention
  • •All commands mutate live App Store Connect production state (`asc submit create/cancel`, `asc web privacy apply/publish`, content-rights edit) using real developer credentials; a mistaken ID or flag affects a real submission, though `--confirm` gates the destructive ones.
  • •Section 8 relies on experimental `asc web privacy ...` commands that use a web session (browser cookie auth) rather than the public API, which is a less-standard credential path than the documented App Store Connect API.
  • •`asc encryption declarations exempt-declare --plist ./Info.plist` patches a local plist and instructs a rebuild/re-upload; it is a legitimate workflow but modifies build artifacts in place.
  • •No obfuscation, no curl|sh, no secret/token exfiltration, no `rm -rf`, no safety-disabling instructions; every command is a named `asc` subcommand.
Comment cette analyse est faite

Exemples

Full preflight before submit
Run the full App Store pre-submission checklist with asc for app 1234567890, version 1.2.3, platform IOS — verify build processing state, encryption, content rights, metadata and localizations, then tell me what still blocks submission.
Debug a failed submission
My App Store submission was rejected at preflight. Use asc to inspect the build and version, find which required declaration or metadata is missing, and show me the exact commands to fix it.
Encryption exemption
asc builds info says usesNonExemptEncryption is true for build 987654321, but my app only uses standard HTTPS. Walk me through declaring the exemption and re-uploading.

name: asc-submission-health description: Preflight App Store submissions, submit builds, and monitor review status with asc. Use when shipping or troubleshooting review submissions.

asc submission health

Use this skill to reduce review submission failures and monitor status.

Preconditions

  • Auth configured and app/version/build IDs resolved.
  • Build is processed (not in processing state).
  • All required metadata is complete.

Pre-submission Checklist

1. Verify Build Status

asc builds info --build-id "BUILD_ID"

Check:

  • processingState is VALID
  • usesNonExemptEncryption - if true, requires encryption declaration

2. Encryption Compliance

If usesNonExemptEncryption: true:

# If the app should be exempt, patch the local plist helper, rebuild, and re-upload
asc encryption declarations exempt-declare --plist "./Info.plist"

# List existing declarations
asc encryption declarations list --app "APP_ID"

# Create declaration if needed
asc encryption declarations create \
  --app "APP_ID" \
  --app-description "Uses standard HTTPS/TLS" \
  --contains-proprietary-cryptography=false \
  --contains-third-party-cryptography=true \
  --available-on-french-store=true

# Assign to build
asc encryption declarations assign-builds \
  --id "DECLARATION_ID" \
  --build "BUILD_ID"

If the app truly uses only exempt transport encryption, prefer asc encryption declarations exempt-declare --plist "./Info.plist" and rebuild instead of creating a declaration that does not match the binary.

3. Content Rights Declaration

Required for all App Store submissions:

# Check current status
asc apps content-rights view --app "APP_ID"

# Set it for most apps
asc apps content-rights edit --app "APP_ID" --uses-third-party-content=false

Valid values:

  • DOES_NOT_USE_THIRD_PARTY_CONTENT
  • USES_THIRD_PARTY_CONTENT

4. Version Metadata

# Check version details
asc versions view --version-id "VERSION_ID" --include-build

# Verify copyright is set
asc versions update --version-id "VERSION_ID" --copyright "2026 Your Company"

5. Localizations Complete

# List version localizations
asc localizations list --version "VERSION_ID"

# Check required fields: description, keywords, whatsNew, supportUrl

6. Screenshots Present

Each locale needs screenshots for the target platform.

7. App Info Localizations (Privacy Policy)

# List app info IDs (if multiple exist)
asc apps info list --app "APP_ID"

# Check privacy policy URL
asc localizations list --app "APP_ID" --type app-info --app-info "APP_INFO_ID"

8. App Privacy readiness advisory

asc can warn about App Privacy readiness, but the public App Store Connect API cannot verify whether App Privacy is fully published. Before final submission:

asc submit preflight --app "APP_ID" --version "1.2.3" --platform IOS
asc validate --app "APP_ID" --version "1.2.3" --platform IOS

Prefer the version string form for top-level readiness checks in this skill so it stays aligned with asc submit preflight. Lower-level commands later in this guide still use VERSION_ID where the API requires it.

If either command reports an App Privacy advisory, the public API cannot verify publish state. Use the web-session privacy workflow if you rely on those endpoints:

asc web privacy pull --app "APP_ID" --out "./privacy.json"
asc web privacy plan --app "APP_ID" --file "./privacy.json"
asc web privacy apply --app "APP_ID" --file "./privacy.json"
asc web privacy publish --app "APP_ID" --confirm

If you do not want to use the experimental asc web privacy ... commands, confirm App Privacy manually in App Store Connect:

https://appstoreconnect.apple.com/apps/APP_ID/appPrivacy

9. Digital goods readiness (IAPs / subscriptions)

If the app sells subscriptions or in-app purchases, validate those separately before submit:

asc validate iap --app "APP_ID" --output table
asc validate subscriptions --app "APP_ID" --output table

In current asc, asc validate subscriptions expands MISSING_METADATA into a per-subscription diagnostics matrix. Use it to identify missing review screenshots, promotional images, pricing or availability coverage gaps, offer readiness, and app/build evidence before retrying submit or first-review attach.

Use --output json --pretty when you want exact territory gaps in machine-readable form.

Submit

Using Review Submissions API (Recommended)

# Create submission
asc review submissions-create --app "APP_ID" --platform IOS

# Add version to submission
asc review items-add \
  --submission "SUBMISSION_ID" \
  --item-type appStoreVersions \
  --item-id "VERSION_ID"

# Submit for review
asc review submissions-submit --id "SUBMISSION_ID" --confirm

Using Submit Command

asc submit preflight --app "APP_ID" --version "1.2.3" --platform IOS
asc submit create --app "APP_ID" --version "1.2.3" --build "BUILD_ID" --confirm

Use --platform when multiple platforms exist.

Monitor

# Check submission status
asc submit status --id "SUBMISSION_ID"
asc submit status --version-id "VERSION_ID"

# List all submissions
asc review submissions-list --app "APP_ID" --paginate

Cancel / Retry

# Cancel submission
asc submit cancel --id "SUBMISSION_ID" --confirm

# Or via review API
asc review submissions-cancel --id "SUBMISSION_ID" --confirm

Fix issues, then re-submit.

Common Submission Errors

"Version is not in valid state"

Check:

  1. Build is attached and VALID
  2. Encryption declaration approved (or exempt)
  3. Content rights declaration set
  4. All localizations complete
  5. Screenshots present for all locales
  6. App Privacy has been reviewed and published in App Store Connect

"Export compliance must be approved"

The build has usesNonExemptEncryption: true. Either:

  • Upload export compliance documentation
  • Or rebuild with ITSAppUsesNonExemptEncryption = NO in Info.plist

"Multiple app infos found"

Use --app-info flag with the correct app info ID:

asc apps info list --app "APP_ID"

Notes

  • asc submit create uses the new reviewSubmissions API automatically.
  • asc submit preflight can return non-blocking advisories; review them before submitting.
  • App Privacy publish state is not verifiable via the public API.
  • Prefer asc apps content-rights view/edit over ad-hoc app JSON inspection.
  • asc validate subscriptions now provides much richer per-subscription diagnostics for MISSING_METADATA cases.
  • If you use ASC web-session flows, asc web privacy pull|plan|apply|publish is the CLI path for App Privacy.
  • If you avoid the experimental web-session commands, confirm App Privacy manually in App Store Connect.
  • Use --output table when you want human-readable status.
  • macOS submissions follow the same process but use --platform MAC_OS.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/asc-submission-health-ms47vqll/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/asc-submission-health-ms47vqll' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/asc-submission-health-ms47vqll/download' --output '.skill-downloads/asc-submission-health-ms47vqll/SKILL.md.part' && mv '.skill-downloads/asc-submission-health-ms47vqll/SKILL.md.part' '.skill-downloads/asc-submission-health-ms47vqll/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/asc-submission-health-ms47vqll/SKILL.md' && test -s '.skill-downloads/asc-submission-health-ms47vqll/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/asc-submission-health' && cp -R '.skill-downloads/asc-submission-health-ms47vqll' '.claude/skills/asc-submission-health'

Codex
test -f '.skill-downloads/asc-submission-health-ms47vqll/SKILL.md' && test -s '.skill-downloads/asc-submission-health-ms47vqll/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/asc-submission-health' && cp -R '.skill-downloads/asc-submission-health-ms47vqll' '.agents/skills/asc-submission-health'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/asc-submission-health-ms47vqll'

openskills read 'asc-submission-health-ms47vqll'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/asc-submission-health-ms47vqll/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires