CommunityBildgithub.com

erberkk/store-screenshots

Erstellt und aktualisiert App Store- und Google Play-Screenshots sowie das Play-Feature-Graphic. Plant eine verbundene „Panorama“-Geschichte über mehrere Bildschirmausschnitte, nimmt echte In-App-Bildschirme mit dem eigenen Test-/Screenshot-Harness der App in der logischen Größe und Pixeldichte jedes Geräts auf, deckt die gesamte Gerätematrix ab und lädt diese in der richtigen Reihenfolge über die App Store Connect- und Google Play-APIs hoch.

Was ist store-screenshots?

Diese Fähigkeit automatisiert den gesamten Workflow zur Erstellung und Aktualisierung von App Store- und Google Play-Screenshots sowie des Play-Feature-Graphics. Sie stellt sicher, dass alle Screenshots echte Aufnahmen der ausgelieferten App sind, keine Mockups, und exakt den erforderlichen Spezifikationen für jedes Gerät entsprechen. Der Workflow umfasst: Planung einer visuellen Geschichte über mehrere Bildschirmausschnitte hinweg (Storyboard), Aufnahme auf Zielgeräten mit korrekter logischer Größe und Pixeldichte, Komposition der Bildschirmausschnitte in einem Panorama-Layout, Überprüfung auf korrekte Abmessungen und fehlende Alphakanäle sowie Upload über die App Store Connect- und Google Play-APIs in der richtigen Reihenfolge pro Sprache und Gerätetyp. Die Fähigkeit unterstützt sowohl Apple- als auch Android-Plattformen, einschließlich der neuesten iPhone- und iPad-Größen, iPhone Duo und Play-Tablets. Sie erfordert menschliche Genehmigungen für Storyboard, finale visuelle Ausrichtung, Austausch von Live-Screenshot-Sets und das Committen der Play-Bearbeitung.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/erberkk/mobile-app-launch-skills/tree/HEAD/skills/store-screenshots

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht store-screenshots?

Zweck

Screenshots, die konvertieren, der App treu sind und jeden Slot passen, den die Stores verlangen. Sie werden von einem Skript erstellt, sodass sie bei UI-Änderungen in Minuten neu generiert werden können.

Voraussetzungen

  • Ein Build, dessen UI für diese Version final ist.
  • Ein Aufnahme-Harness in der App (Flutter Golden/Integrationstests, XCUITest, Espresso/Compose-Screenshot-Tests oder Fastlane Snapshot), der Bildschirme mit deterministischen Demodaten rendern kann.
  • Node.js 18+ und Chrome/Chromium für das Rendering (npm i in scripts/).
  • API-Anmeldedaten (accounts-and-tax) für den Upload.

Prinzipien

  1. Echte Aufnahmen, keine Mockups. Jeder Telefonbildschirm innerhalb eines Rahmens ist eine Aufnahme der ausgelieferten App. Neu gezeichnete oder „verbesserte“ UI führt in die Irre (Richtlinie 2.3) und wird schnell veraltet.
  2. Zahlen müssen mit der App übereinstimmen. Wenn ein Rahmen „1.850 Schritte“ oder „12 Min“ zeigt, muss die App genau das für die Demodaten produzieren. Generiere die Demodaten im Harness und überprüfe sie im selben Test.
  3. Wenn ein Screenshot etwas zeigt, was die App nicht tut, korrigiere eines von beiden. Entweder baue die Funktion oder ändere den Rahmen. Liefere nie die Lücke aus.
  4. Keine andere Plattform in den Rahmen. Keine Android-Status-/Navigationsleisten auf iOS, keine Apple-UI oder „App Store“ auf Play (2.3.10).
  5. Behalte dieselbe Rahmenreihenfolge in jedem Gebietsschema und auf jedem Gerät.

Gerätematrix

Vollständige Tabelle mit logischen Größen und API-Kennungen: references/device-matrix.md. Zusammenfassung (überprüfe unter Apple-Screenshot-Spezifikationen und Play-Vorschau-Assets):

SlotPixel (Hochformat)Erforderlich?
iPhone großes Dynamic Island (6,9")1320×2868 (auch 1290×2796, 1260×2736)Empfohlenes Hauptset
iPhone mittleres Dynamic Island1206×2622 oder 1179×2556Mindestens ein Screenshot erforderlich
iPhone Duo äußeres Display1398×2034Erforderlich ab April 2027 für Apps, die mit dem iOS 27.1 SDK oder neuer erstellt wurden; fügt das Abzeichen „Optimiert für iPhone Duo“ hinzu
iPhone Duo inneres Display2007×2853Wie äußeres Display
iPad 13"2064×2752 (oder 2048×2732)Nur erforderlich, wenn die App auf iPad läuft (nicht für iPhone-only-Apps)
Play-Telefonz. B. 1080×1920 oder 1080×2160 (Seiten 320–3840 px, lange Seite ≤ 2× kurze Seite)≥ 2 Screenshots für Veröffentlichung; ≥ 4 bei ≥ 1080 px empfohlen
Play 7" und 10"-Tablet1080–7680 px, 9:16 oder 16:9Empfohlen, wenn die App Tablets unterstützt
Play-Feature-Graphic1024×500Erforderlich
Play-Symbol512×512, 32-Bit-PNGErforderlich

Apple: bis zu 10 pro Größe; PNG oder JPEG; kein Alphakanal oder Transparenz. Play: bis zu 8 pro Gerätetyp; JPEG oder 24-Bit-PNG (kein Alpha).

App Store-Produktseiten-Kreativ-Assets (neueres App Store Connect, Registerkarte «Header und Suchergebnisse»):

  • Header: ein breites Bild oben auf der Produktseite, 3840×1646 oder 5244×2950. Optional (Einreichung ist auch ohne möglich).
  • Suchergebnisse: 5244×2950, 3840×2560 oder 1920×1280; wenn leer, werden Screenshots und Vorschauen verwendet.
  • Hochladen über die Versionsseite oder die Asset-Bibliothek (Kreativ-Assets hochladen), dann mit «Assets durchsuchen» auswählen. In der Bibliothek hochgeladene Assets bleiben für spätere Verwendung erhalten.
  • Designhinweis: Der Store überlagert das Symbol, den Namen und den „Get“-Button auf einem Teil des Headers. Überprüfe das Ergebnis daher in der Konsolenvorschau.
  • Diese Slots sind gesperrt, während die Version auf Überprüfung wartet. Füge sie vor dem Einreichen hinzu.

Vorgehensweise

1. Die Geschichte planen (GENEHMIGUNG des Storyboards)

Ein Storyboard mit 5–8 Bildschirmausschnitten schreiben: eine Überschrift (≤ 6 Wörter), eine unterstützende Zeile, ein Bildschirmausschnitt pro Frame. Optionales „Panorama“-Layout (was die gebündelte Vorlage tut): Bildschirmausschnitte sind Teile einer breiten Leinwand, sodass Formen über Rahmenkanten hinweg weiterlaufen. Welches Layout auch immer verwendet wird, jedes Angebot (kostenloser Start, Testversion) muss wahr sein.

2. Echte Bildschirme aufnehmen

Jeden Bildschirm in der logischen Größe × Pixeldichte des Zielgeräts aufnehmen, sodass Text und Layout exakt dem entsprechen, was das Gerät zeigt. Flutter-Beispiel (Widget/Golden-Test):

// 6,9" iPhone: 440 x 956 logische Punkte @3x = 1320 x 2868 px
tester.view.physicalSize = const Size(1320, 2868);
tester.view.devicePixelRatio = 3.0;
await tester.pumpWidget(App(demo: DemoData.storeShots(locale: 'en')));
await tester.pumpAndSettle();
expect(find.text('1,850 steps'), findsOneWidget);       // die Zahl in der Überschrift ist echt
await expectLater(find.byType(App), matchesGoldenFile('captures/en/iphone69/01_home.png'));
  • Schriftarten in Tests laden (sonst rendert der Test Schriftart-Boxen).
  • Feste Uhrzeit, feste Demodaten, kein Netzwerk.
  • Debug-Banner ausblenden; die Statusleiste auf einen sauberen Zustand setzen (oder sie zuschneiden und keine zeichnen).
  • Jedes Gebietsschema separat aufnehmen; niemals englische UI in einen lokalisierten Bildschirmausschnitt einfügen.

3. Bildschirmausschnitte zusammensetzen

Vorlage: templates/panorama.html, Renderer: scripts/render.mjs.

cd scripts && npm i
node render.mjs ../templates/frames.example.json out/

Der Renderer legt alle Bildschirmausschnitte auf einer Leinwand an (Breite = Bildschirmausschnitte × Rahmenbreite), lädt die Aufnahmen, wartet auf Schriften und erstellt Screenshots von jedem Rahmenausschnitt in exakter Pixelgröße, für jedes Gerät in der Konfiguration. Er rendert auch das 1024×500-Feature-Graphic.

4. Prüfen

node check-images.mjs out/

Fehlschläge bei: falschen Abmessungen für das Gerät des Ordners, vorhandenem Alphakanal (PNG-Farbtyp 4/6 oder tRNS-Chunk), mehr als 10 (Apple) / 8 (Play) Dateien, Lücken in der Nummerierung. Dann jedes Bild bei 100 % Zoom ansehen: abgeschnittener Text, UI einer anderen Plattform, Platzhalterstrings, veraltete Zahlen.

5. Über APIs hochladen (GENEHMIGUNG vor dem Ersetzen von Live-Sets)

  • App Store Connect — scripts/upload-asc.mjs: Finde die bearbeitbare appStoreVersion → deren appStoreVersionLocalizations → appScreenshotSets pro screenshotDisplayType → alte Screenshots löschen → reservieren (POST /v1/appScreenshots mit fileName, fileSize) → die Teile aus uploadOperations hochladen → committen (PATCH mit uploaded: true und dem MD5-sourceFileChecksum) → die Reihenfolge über die appScreenshots-Beziehung des Sets festlegen. Dokumentation: Assets hochladen.
  • Google Play — scripts/upload-play.mjs: edits.insert → edits.images.deleteall pro Sprache und Bildtyp → edits.images.upload in der richtigen Reihenfolge (phoneScreenshots, sevenInchScreenshots, tenInchScreenshots, featureGraphic) → edits.commit. Dokumentation: edits.images.upload.

Beide Skripte standardmäßig im Trockenmodus; setze DRY_RUN=0 zum Schreiben.

6. Rücklesen

Liste die hochgeladenen Assets pro Sprache und Gerät (beide APIs) auf und vergleiche Anzahl und Reihenfolge mit dem lokalen Ordner. Apple verarbeitet Uploads asynchron; warte, bis jedes Asset den Lieferstatus COMPLETE meldet.

Entscheidungspunkte, die menschliche Genehmigung erfordern

Storyboard und Überschriften, finale visuelle Ausrichtung, Ersetzen eines Live-Screenshot-Sets, Committen der Play-Bearbeitung.

Überprüfung

  • check-images.mjs besteht; jeder erforderliche Apple-Slot hat mindestens ein Bild; Play hat Telefonaufnahmen und das Feature-Graphic.
  • Rücklesereihenfolge stimmt überein; keine fehlgeschlagenen Asset-Status.
  • Jede Zahl und jedes Feature in den Bildschirmausschnitten wurde gegen den Build überprüft.

Häufige Fallstricke

  • Nur 6,9" hochladen und den erforderlichen mittleren Dynamic-Island-Slot vergessen.
  • PNGs, die mit einem Alphakanal exportiert wurden (häufig bei Designtools und Headless-Browsern mit transparentem Hintergrund – immer einen undurchsichtigen Hintergrund setzen).
  • Das 6,9" 1320×2868-Bild auf Play verwenden: sein Seitenverhältnis überschreitet Plays 2:1-Limit; eine Play-spezifische Größe rendern.
  • iPad-Screenshots für eine iPhone-only-App (nicht nötig) – oder sie fehlen, wenn die App auf iPad läuft.
  • Ein Bildschirmausschnitt, der eine Einstellungszeile oder ein Ergebnis zeigt, das die App nicht hat.
  • Überschrift übersetzt, aber die Aufnahme ist noch auf Englisch.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

erberkk/privacy-and-declarations

Use when filling in or auditing App Store privacy and compliance answers and Google Play App content declarations - Apple App Privacy labels, Play Data safety (CSV import), Health apps declaration and Health Connect permissions, advertising ID, PrivacyInfo.xcprivacy and required-reason APIs, export compliance (ITSAppUsesNonExemptEncryption), age rating, account deletion (in-app, web URL, re-authentication), consent and disclosure for AI features, and rules for health data. Derives every answer from a code and SDK scan so the forms, the privacy policy and the in-app text say the same thing.

erberkk/review-readiness

Use before submitting an app version or a first subscription for App Store or Google Play review, or after receiving a rejection. Runs a go/no-go checklist and writes a report - demo account that signs in with a password (no email one-time code), filled with data and premium unlocked; review notes; in-app purchases visible and purchasable (guideline 2.1(b)); iPad compatibility mode for iPhone-only apps; no placeholders or "coming soon"; metadata matching the app; live privacy URLs; crash-free cold start - and gives a playbook for replying in Resolution Center and deciding when to appeal.

erberkk/social-publishing

Use when setting up scheduled publishing of an app's marketing content to Instagram (Reels, carousels, Stories), Threads, X and TikTok through official APIs - self-hosting Postiz in Docker behind a Cloudflare Tunnel, creating the Meta app with the newer use-case flow (business portfolio, Facebook Page linked to the Instagram professional account, Threads tester invite), X developer pay-per-use credits and spend cap, TikTok and YouTube audit limits, safe OAuth account selection when one browser holds personal and brand accounts, resource limits, and phasing a posting calendar around real launch events.

erberkk/web-presence-and-seo

Use when building, checking or deploying the website that a mobile app needs for its store listings and launch - privacy policy, terms, support and web account-deletion pages that work signed-out; hosting apple-app-site-association and assetlinks.json; invite/referral pages (/i/<code>) that open the app or fall back to the store with the Play install referrer; a landing page with store badges and honest per-country prices filled at the edge; Open Graph images; technical SEO (hreflang, canonical, sitemap, robots.txt, JSON-LD); Search Console, Bing Webmaster and IndexNow; AI crawler policy and llms.txt; and a Cloudflare Worker deploy with a production approval gate. Includes a site checker and an IndexNow ping script.

Verwandte Skills