App Store Connect CLI Skills

repository·main·Indexed 21 days ago

https://github.com/rorkai/app-store-connect-cli-skills

A collection of Agent Skills for the App Store Connect CLI (asc) that enable AI agents to automate complex workflows. Key capabilities include build and TestFlight management, metadata synchronization and LLM-powered localization, simulator screenshot pipelines, release orchestration via asc-release-flow, and submission health diagnosis. It also provides tools for Apple Ads management, signing setup, and UI automation for creating new app records.

Tokens
46.2K
Snippets
127
Records
178
Agent score
75%

What's inside app-store-connect-cli-skills

  1. Sync App Store Connect and RevenueCat catalogs

    main

    The asc-revenuecat-catalog-sync skill reconciles App Store Connect (ASC) subscriptions and in-app purchases (IAPs) with RevenueCat products, entitlements, offerings, and packages. It is used to bootstrap RevenueCat from an existing ASC catalog, create missing ASC items, or perform drift audits to ensure both systems are aligned.

    Key Concepts

    • Canonical Identifier: The primary link between systems is ASC productId == RevenueCat store_identifier. You must keep productId stable once products are live and avoid using display names as unique identifiers.
    • Scope Boundary: The skill uses RevenueCat MCP to configure RevenueCat resources. It does not create App Store Connect products directly; you must use asc commands to create missing ASC subscription groups, subscriptions, and IAPs before the mapping phase.
  2. Orchestrate App Store releases with asc-release-flow

    main

    The asc-release-flow skill is used to manage the lifecycle of an App Store release, moving from an approved plan to App Store review. It handles staging metadata, attaching builds, publishing IPAs (or building locally), and submitting versions for review.

    Key Responsibilities:

    • Staging metadata and attaching builds.
    • Publishing an IPA or building locally.
    • Submitting prepared versions.
    • Assembling multi-item review submissions (e.g., App + IAP/Game Center items).

    Important Boundaries:

    • Game Center: Use the multi-item submission reference for Game Center item preparation. Only return to this flow for assembly/submission after items are prepared.
    • Error Recovery: For validation blockers (other than unattached builds), stuck submissions, cancellations, or retry decisions, use the asc-submission-health skill instead.
  3. Extract and reference step outputs

    main

    Steps can declare outputs to capture data from a command's stdout.

    Requirements

    1. The command must emit valid JSON on stdout. For asc commands, you must include the --output json flag.
    2. The step must have a reference-safe name.
    3. Output-producing names must be unique across workflows that execute in the same run graph.
    4. Outputs are only allowed on run steps, not workflow sub-call steps.

    Referencing Outputs

    Use the following syntax to access captured values in subsequent steps:

    ${steps.<step_name>.<OUTPUT_NAME>}

    Example: If a step named resolve_build has an output BUILD_ID, access it via ${steps.resolve_build.BUILD_ID}.

    {
      "steps": [
        {
          "name": "get_info",
          "run": "asc builds info --output json",
          "outputs": {
            "MY_ID": "$.id"
          }
        },
        {
          "name": "use_info",
          "run": "echo Using ID: ${steps.get_info.MY_ID}"
        }
      ]
    }
  4. Automate screenshots with asc-shots-pipeline

    main

    The asc-shots-pipeline provides an agent-first pipeline for simulator screenshot automation using xcodebuild/simctl and AXe.

    Pipeline Stages:

    1. Capture: Capture screens in the simulator.
    2. Frame: Process images using asc screenshots frame (experimental).
    3. Upload: Upload via asc screenshots upload.

    Useful Commands:

    • asc screenshots list-frame-devices: Discover supported frame devices.

    Requirement: For deterministic framing, it is recommended to use koubou==0.18.1.

  5. Pass runtime parameters and manage environment precedence

    main

    You can pass parameters to a workflow at runtime using KEY:VALUE or KEY=VALUE syntax. If keys are repeated, the last one wins.

    Parameter Syntax

    asc workflow run beta VERSION:2.1.0
    # OR
    asc workflow run beta VERSION=2.1.0

    In shell commands within the workflow, reference these via standard shell expansion (e.g., $VERSION).

    Environment Precedence

    When resolving environment variables, the order of precedence (from highest to lowest) is:

    For a main workflow run:

    1. CLI parameters
    2. workflow.env
    3. definition.env (global env)

    For a sub-workflow call using with:

    1. step.with (the override)
    2. Caller's environment and parameters
    3. Sub-workflow's own env definition
  6. Use canonical asc CLI verbs

    main

    When designing automation or documentation, follow these verb conventions for the asc CLI:

    • view: Use for all read-only commands (replaces the legacy get alias).
    • edit: Use for update-only flows (e.g., updating availability or Xcode version numbers).
    • create: Use to initialize a resource (e.g., use asc pricing availability create before using edit).
    • set: Use only when the CLI explicitly models a high-level configuration flow and --help defines set as the canonical verb.
    # Read-only
    asc apps view --id "APP_ID"
    
    # Update-only
    asc pricing availability edit --app "APP_ID" --territory "USA,GBR" --available true
    
    # Initialization
    asc pricing availability create --app "APP_ID" --territory "USA,GBR" --available true
  7. Understand the structure of an ASC CLI skill

    main

    Each skill in this repository follows a standardized directory structure designed for AI agents. When interacting with or building a skill, expect the following components:

    • SKILL.md: Contains the core instructions and logic that the AI agent uses to execute the skill.
    • scripts/: (Optional) A directory containing helper scripts used to automate specific tasks within the skill.
    • references/: (Optional) A directory containing supporting documentation or context required for the skill's operation.
  8. Understand the Offline ASO Check rules

    main

    The offline phase runs 6 specific checks against your local JSON metadata files:

    1. Keyword Waste: Flags tokens in the keywords field that already appear in the subtitle or name.
      • Note: For Arabic, it checks prefix-stripped variants (e.g., removing ال). For CJK, it uses character-based tokenization.
    2. Underutilized Fields: Flags fields below recommended minimums:
      • keywords: < 90 chars
      • subtitle: < 20 chars
    3. Missing Fields: Flags empty/missing subtitle, keywords, description, or whatsNew.
    4. Bad Keyword Separators: Flags formatting errors in keywords like spaces after commas (quran, recitation), semicolons, or pipes.
    5. Cross-Locale Keyword Gaps: Flags non-primary locales where keywords are identical to the en-US keywords (indicating a lack of localization).
    6. Description Keyword Coverage: Checks if keywords appear naturally in the description to improve conversion rates. It accounts for inflections (e.g., verb conjugations or case declensions).
  9. Localize App Store metadata with asc-localize-metadata

    main

    Use asc-localize-metadata to translate App Store listing elements (description, keywords, what's new, subtitle) using LLM translation prompts.

    Capabilities:

    • Translates from a source locale (typically en-US) to multiple target locales.
    • Generates locale-aware keywords rather than literal translations.
    • Enforces strict character limit constraints.
    • Supports a review-before-upload workflow.
  10. Use Audit vs Apply modes in catalog sync

    main

    The skill operates in two distinct modes to ensure safety and control:

    1. Audit mode (Default)

    This is a read-only mode used to identify discrepancies without making changes. It performs the following:

    1. Reads the ASC source catalog.
    2. Reads the RevenueCat target catalog.
    3. Builds a diff identifying:
      • Items missing in ASC
      • Items missing in RevenueCat
      • Mapping conflicts (identifier, type, or app mismatches)
    4. Presents a plan and waits for user confirmation.

    2. Apply mode (Explicit)

    This mode executes approved actions in a specific sequence:

    1. Ensures ASC groups, subscriptions, and IAPs exist.
    2. Ensures RevenueCat app and products exist.
    3. Ensures entitlements and product attachments are configured.
    4. Ensures offerings, packages, and package attachments are configured.
    5. Verifies and prints a final reconciliation summary.

    Safety Defaults:

    • The skill starts in audit mode by default.
    • It requires explicit confirmation before performing any writes.
    • It never deletes resources.
    • It continues on per-item failures and reports all failures at the end.
  11. Best practices for TestFlight orchestration

    main

    When using the asc-testflight-orchestration skill, follow these guidelines:

    • Pagination: Always use the --paginate flag when listing large groups or tester lists to avoid truncated output or errors.
    • Deterministic Operations: Prefer using unique IDs (e.g., GROUP_ID, BUILD_ID) rather than names for commands to ensure operations are deterministic. If you only have names, use the ID resolver skill to find the corresponding IDs first.