Google Play: Vom Entwicklerkonto bis zur Einreichung
Ziel: Zuerst die geschlossene Testversion in den Status „Wird geprüft" bringen (erfahrungsgemäß noch am selben Tag genehmigt), dann gemäß den Testanforderungen für Privatkonten genügend Tester rekrutieren und schließlich die Produktionsversion in den Status „Wird geprüft" bringen.
Zuerst: Stelle sicher, dass die Schritte 1–4 von ship-my-game abgeschlossen sind (Fortschrittsdatei, Kanäle, Health Check, Browser). Falls nicht, lies es zuerst. Der Fortschritt dieses Kanals wird im Abschnitt ## google-play der Fortschrittsdatei festgehalten.
Beginne, indem du den Benutzer nach diesen fünf Dingen fragst und die Antworten in [Praktisch: Checkliste] der Fortschrittsdatei notierst:
- Hast du ein Play-Entwicklerkonto? Privat oder Organisation? Wann ungefähr registriert?
- In welchem Land/Region bist du? Dies bestimmt, ob das Händlerkonto Zahlungen empfangen kann Offiziell.
- Wie möchtest du Geld verdienen: Werbung, In-App-Käufe, Bezahl-Downloads oder gar nicht? Dies beeinflusst, welche persönlichen Daten öffentlich sind und wie die Händleridentität deklariert wird.
- Unter welcher öffentlichen HTTPS-URL befindet sich die Datenschutzerklärung? Welche öffentliche Kontakt-E-Mail wird im Store verwendet?
- Hast du ein AdMob-Konto? Es wird empfohlen, dasselbe Google-Konto wie für das Play-Entwicklerkonto zu verwenden.
Dann informiere den Benutzer über drei Dinge:
-
Testhürde: Bei Privatkonten, die nach dem 13.11.2023 registriert wurden, müssen mindestens 12 echte Tester 14 aufeinanderfolgende Tage am geschlossenen Test teilnehmen, bevor die Produktionsversion beantragt werden kann (Prüfung dauert in der Regel innerhalb von 7 Tagen) Offiziell. Daher dauert es vom Bestehen des geschlossenen Tests bis zur Produktionsveröffentlichung mindestens etwas mehr als zwei Wochen.
-
Öffentlich gemachte Informationen:
- Bei Privatkonten werden der vollständige gesetzliche Name, das Land und die Entwickler-E-Mail öffentlich;
- Nachdem du mit dem Play Store Geld verdienst (Bezahl-Apps, In-App-Käufe), wird die vollständige Adresse öffentlich;
- Bei Privatkonten, die als „Händler" deklariert sind, werden auch Telefonnummer und Adresse öffentlich.
Erkläre dies vor der Registrierung gemäß Abschnitt 1 von onboarding.md.
-
AAB-Upload: Ein AAB hat normalerweise mehrere Dutzend MB, das Browser-Tool erlaubt jedoch nur Einzel-Uploads bis zu 10 MB. Daher muss der Benutzer das erste AAB in die Webseite ziehen. Später kann die Developer API verwendet werden (von diesem Repository nicht getestet), siehe automation.md.
Vom Benutzer zu erledigende Aufgaben
| Aufgabe | Phase |
|---|---|
| Registrierung: US$25 bezahlen, Ausweis, E-Mail- und Telefonverifikation, Android-Geräteverifikation (mit Play Console Mobile App scannen), Händlerstatus-Deklaration | P1 |
| Zustimmung einholen: „Entwickler-Vertriebsvereinbarung"; bei App-Erstellung die Erklärungen zu „Entwicklerprogramm-Richtlinien" und „US-Exportgesetze"; IARC-Nutzungsbedingungen; PGS- und Google-Cloud-Bedingungen (bei Aktivierung); „Google-API-Dienste: Richtlinie zu Nutzerdaten" | P1, P3, P6 |
| AAB in das Upload-Feld der Webseite ziehen | P4, danach bei jedem Update (wenn nicht über API) |
| „N Änderungen zur Prüfung einreichen": Nachdem der Benutzer „Einreichen" sagt, klickst du darauf; falls durch Berechtigungssystem blockiert, klickt der Benutzer | P4, P7 |
| Captcha bei Erstellung der Google-Gruppe; Beiträge in Reddit etc. verfassen, gegenseitige Tests; mit eigenem Konto am Test teilnehmen | P5 |
| Auf einem echten Gerät Ton, PGS-Login und Gesamthaptik bestätigen | P2, P6 |
| „App veröffentlichen" im OAuth-Zustimmungsbildschirm, „Spielprojekt veröffentlichen" in PGS | P6 |
| AdMob-Registrierung: Land, Bedingungen, Captcha, Zahlungs- und Steuerinformationen | P6 |
| Zustimmung zur Veröffentlichung der Datenschutzerklärung und app-ads.txt auf der eigenen Website; Hosting-Kosten werden vom Benutzer getragen | P2, P6 |
| Auszahlung: AdMob-Ausweis, PIN-Code, Zahlungsmethode, US-Steuerinformationen; Play-Händler-Zahlungsprofil und Bankkonto | Nach Veröffentlichung |
Technische Anforderungen
Schritt 3 von ship-my-game listet die Abweichungen gemäß dieser Tabelle auf. Details siehe references/build.md.
| Punkt | Anforderung | Quelle |
|---|---|---|
| Unity | Ziel-API 36 benötigt 6000.0.46f1+ oder 2022.3.62f1+; 16-KB-Seiten benötigen 6000.0.38f1+ oder 2022.3.56f1+, Burst 1.8.21+. Getestet mit 6000.6.5f1 | Offiziell; [Praktisch] |
| Module | Android Build Support (enthält OpenJDK, SDK, NDK) | — |
| targetSdk | 36 (ab 2026-08-31; verlängerte Frist 2026-11-01 bereits abgelaufen). minSdk nicht niedriger als 24, praktisch 26 | Offiziell; [Praktisch] |
| Architektur & Format | IL2CPP, ARM64 + ARMv7, AAB; Symbole im AAB | [Praktisch], gesetzt durch scripts/ShipAndroidBuild.cs |
| 16-KB-Speicherseiten | Pakete mit nativen Bibliotheken (alle Unity-Pakete) müssen 16-KB-ausgerichtet sein, nach dem Build prüfen | Offiziell |
| Signatur | Upload-Schlüssel wird von scripts/make_upload_keystore.sh generiert, außerhalb des Projekts gespeichert; App-Signaturschlüssel von Google verwaltet | [Praktisch] |
| Ton | Jede Szene, die gestartet wird, hat genau einen AudioListener | [Praktisch-Fehler] Zwei Spiele waren deshalb ohne Ton live |
| Werbung | Während des geschlossenen Tests ausschließlich Google-Test-Werbe-IDs verwenden; Einstiegspunkte ausblenden, wenn keine Anzeigen verfügbar | [Praktisch] |
| In-App-Käufe | Unity IAP ≥ 4.14.0 oder 5.x (Play-Billing-Bibliothek ≥ 8) | Offiziell |
| Datenschutzerklärung | Öffentliche HTTPS-Webseite, Link sowohl in der Play-Konsole als auch im Spiel; Vorlage templates/privacy-policy.en.html | Offiziell; [Praktisch] |
| Sensitive Berechtigungen | Im zusammengeführten Manifest keine ungenutzten Berechtigungen für Fotos, Videos, Kontakte, Standort etc. | Offiziell |
Phasen
Befehle und Links mit relativen Pfaden (scripts/…, ../ship-my-game/…) beziehen sich auf das Verzeichnis dieses Skills. Pfade in der Konsole verwenden den Originaltext der deutschen Play Console-Oberfläche.
P1 Konto (falls vorhanden, direkt zur Checkliste springen und Punkt für Punkt prüfen)
- Öffne https://play.google.com/console , lies die Seite und stelle fest, ob ein Entwicklerkonto vorhanden ist und ob es sich um ein privates oder ein Organisationskonto handelt.
- Falls kein Konto vorhanden: Erkläre zuerst Abschnitt 1 von onboarding.md „Welche Informationen werden öffentlich gemacht?", und führe den Benutzer nach seiner Zustimmung durch die Registrierung. Bezahlung, Ausweis, Verifikationscodes und Geräteverifikation werden vom Benutzer durchgeführt Offiziell.
- Händlerstatus: Muss bei neuen Konten sofort deklariert werden („Konto verwalten → Kontodetails → Über Sie"), bei bestehenden Konten spätestens bis 01.02.2027. Der Benutzer entscheidet nach bestem Wissen und Gewissen; du erklärst die Kriterien und Konsequenzen Offiziell.
- Erledige auf dem „Startseite"-Tab alle ausstehenden Verifikationsaufgaben und bestätige den Status der „Android-Entwicklerverifizierung" (bei Erstellung einer neuen App wird der Paketname automatisch registriert) Offiziell.
Abschlusskriterien:
- Auf dem Startseite-Tab sind keine ausstehenden Verifikationsaufgaben vorhanden.
- Die Fortschrittsdatei enthält den Kontotyp, das Registrierungsdatum (zur Beurteilung, ob die 12-Personen-x-14-Tage-Regel gilt) und den Händlerstatus.
P2 Projekt, Upload-Schlüssel, erstes AAB
- Ändere das Projekt gemäß „Technische Anforderungen": Kopiere
scripts/ShipAndroidBuild.csnachAssets/Editor/, überprüfe den AudioListener in jeder Szene. - Generiere den Upload-Schlüssel:
bash scripts/make_upload_keystore.sh <Paketname>, dann erinnere den Benutzer an das Backup von~/.shipmygame/keys/<Paketname>/[Praktisch]. - Build:
../ship-my-game/scripts/unity_build.sh <Projektverzeichnis> Android ShipAndroidBuild.Aab release -shipVersion 1.0.0 -shipVersionCode 1.[Praktisch]: Dieses Skript hat auf einem leeren Projekt ein Debug-APK erstellt; das gleich konfigurierte Build-Skript hat auf zwei Spielen signierte AABs erstellt.
- Selbstprüfung: Verwende bundletool, um das Manifest (targetSdk 36, Test-Werbe-App-ID) zu überprüfen, bestätige, dass Symbole im AAB enthalten sind, und prüfe die 16-KB-Ausrichtung. Befehle siehe Abschnitt 4 von build.md.
- Erstelle mit
ShipAndroidBuild.Apkein Debug-APK und bitte den Benutzer, es auf sein Telefon zu installieren und den Ton zu bestätigen[Praktisch: Im Simulator kann Ton nicht geprüft werden]. - Generiere die Datenschutzerklärung gemäß
templates/privacy-policy.en.html: Ersetze alle{{Platzhalter}}, lösche die nicht benötigten Abschnitte für AdMob, PGS und In-App-Käufe. Nach Zustimmung des Benutzers auf einer öffentlichen HTTPS-URL veröffentlichen und mitcurlsicherstellen, dass 200 zurückgegeben wird[Praktisch].
Abschlusskriterien:
- Es gibt ein signiertes AAB, dessen versionCode und Selbstprüfungsergebnisse in der Fortschrittsdatei festgehalten sind.
- Der Benutzer hat auf einem echten Gerät bestätigt, dass Ton vorhanden ist.
- Die URL der Datenschutzerklärung gibt 200 zurück.
P3 App erstellen, App-Inhalt, Store-Listung
- „Startseite → App erstellen": Name, Paketname (zuerst auf „Verfügbarkeit prüfen" klicken), Standardsprache, Spiel, kostenlos oder kostenpflichtig; die zwei Erklärungen vom Benutzer anhaken lassen. Feld für Feld siehe Abschnitt 1 von console.md
[Praktisch]. - Fülle im Dashboard die 11 Punkte von „Spieleinstellungen abschließen" einzeln aus: Datenschutzerklärung, Anmeldedaten, Werbung, Altersfreigabe, Zielgruppe, Datensicherheit, Regierungs-Apps, Finanzprodukte und -dienstleistungen, Gesundheit, Kategorie und Kontaktinformationen, Store-Listung. Antworten siehe Abschnitt 2 von console.md
[Praktisch]. - „Monitor und verbessern → Richtlinien und Programme → App-Inhalt": Setze alle „Deklaration starten" zurück, insbesondere die „Werbe-ID". Sie ist nicht in den 11 Punkten enthalten und führt ohne Deklaration zur Ablehnung
[Praktisch-Fehler → Behoben]. - „Store-Präsenz → Store-Einstellungen": Kategorie, maximal 5 Tags, Kontaktinformationen (Website muss dieselbe Domain wie app-ads.txt verwenden)
[Praktisch]. - „Store-Präsenz → Store-Listung": Text, Symbol, Hero-Bild, Screenshots, KI-Ressourcen-Deklaration. Für Mehrsprachigkeit „Übersetzungen mit KI importieren" verwenden, nach dem Import sprachweise prüfen. Siehe listing.md
[Praktisch].
Abschlusskriterien:
- Der Block „Spieleinstellungen abschließen" im Dashboard ist vollständig verschwunden.
- Im „App-Inhalt" gibt es keine ausstehenden Aufgaben.
- Der Status der Store-Listung ist „Kann eingereicht werden", die Quelldateien der Assets befinden sich alle in
publish/google-play/.
P4 Geschlossener Test-Erststart (Einreichungsschleuse)
-
„Testen und veröffentlichen → Tests → Geschlossener Test" (Standard-Track „Geschlossener Test – Alpha"):
- Länder/Regionen „Alle auswählen";
- Tester: Google-Gruppe (empfohlen) oder E-Mail-Liste, nur eine der beiden Optionen wählbar;
- Feedback-E-Mail eintragen.
Siehe Abschnitt 5 von console.md
[Praktisch]. -
„Neue Version erstellen": Zuerst Versionsname und mehrsprachige Versionshinweise eintragen, dann „Als Entwurf speichern". Bitte den Benutzer, das AAB in das Upload-Feld zu ziehen. Du pollst die Seite, bis ein Eintrag wie „1 (1.0.0)" erscheint
[Praktisch]. -
„Weiter" → „Details der Überprüfung anzeigen" lesen → „Speichern" → „Veröffentlichungsübersicht", warte, bis die Schnellprüfung abgeschlossen ist (maximal ca. 14 Minuten), behebe Probleme zuerst
[Praktisch]. -
Liste die Punkte gemäß der Einreichungsschleuse für den Benutzer auf. Nachdem der Benutzer „Einreichen" sagt, klicke auf „N Änderungen zur Prüfung einreichen" → „Änderungen zur Prüfung einreichen"; falls durch das Berechtigungssystem blockiert, bitte den Benutzer zu klicken. Details siehe Abschnitt 1 von review.md
[Praktisch].
Abschlusskriterien:
- Die Veröffentlichungsübersicht zeigt „Änderungen werden derzeit geprüft".
- Die Fortschrittsdatei enthält den Einreichungszeitpunkt und die voraussichtliche Dauer (praktisch 10–42 Minuten, offiziell in der Regel innerhalb von 7 Tagen) sowie den Hinweis, in der „Veröffentlichungsübersicht" nach dem Ergebnis zu sehen.
P5 Tester rekrutieren, 14 Tage abwarten (Privatkonto; parallel zu P6 möglich)
- Nach der Genehmigung zum Tab „Tester" gehen und die zwei Beitrittslinks aus dem aria-label der Kopierschaltfläche entnehmen
[Praktisch]. - Mit
templates/testers-recruitment.mdeinen Rekrutierungstext verfassen. Das Captcha bei der Erstellung der Google-Gruppe wird vom Benutzer gelöst; Community-Beiträge werden vom Benutzer erstellt[Praktisch]. Siehe Abschnitt 2 von review.md. - Täglich die Karte „Berechtigung für Produktionsversion beantragen" im Dashboard lesen: „Derzeit nehmen N Tester seit M Tagen teil"
[Praktisch: Originaltext der Karte]. - Je nach Feedback Updates veröffentlichen: versionCode um 1 erhöhen, die Schritte 2–4 von P4 wiederholen oder die API von automation.md verwenden. Änderungen sammeln und auf einmal einreichen, da eine erneute Einreichung die laufende Prüfung abbricht
[Praktisch]. - Das Feedback aus „Monitor und verbessern → Bewertungen und Rezensionen → Test-Feedback" und die zugehörigen Korrekturen in der Fortschrittsdatei festhalten, für die Umfrage in P7 Offiziell.
Abschlusskriterien: Auf der Karte sind sowohl „Mindestens 12 Tester" als auch „Mindestens 14 Tage" angehakt; die Fortschrittsdatei enthält Aufzeichnungen über Feedback und Korrekturen.
P6 Plattformfunktionen (parallel zu P5)
-
Play-Spieldienste:
- Konsole: Konfiguration, OAuth-Zustimmungsbildschirm, Anmeldedaten (SHA-1 aller Signaturzertifikate müssen konfiguriert werden), Erfolge (mindestens 10), Bestenlisten, Testpersonen;
- Unity:
scripts/ShipPgsSetup.csundscripts/ShipPlayGames.cs; - „App veröffentlichen" und „Spielprojekt veröffentlichen" werden vom Benutzer geklickt.
Siehe Abschnitt 1 von capabilities.md
[Praktisch: Konsolenkonfiguration]. -
AdMob:
- App und Anzeigenblöcke erstellen,
scripts/ShipAds.cs(UMP-Zustimmung → Initialisierung → Belohnungsvideo, Interstitial, Banner); - GDPR-Nachricht veröffentlichen, app-ads.txt vorbereiten;
- Während der Testphase Test-IDs verwenden, nach der Veröffentlichung mit dem Store verknüpfen.
Siehe Abschnitt 2 von capabilities.md
[Praktisch: Konsolenkonfiguration]. - App und Anzeigenblöcke erstellen,
-
In-App-Bewertungen, In-App-Updates:
scripts/ShipPlayReview.cs; In-App-Käufe: Unity IAP. Siehe Abschnitte 3 und 4 von capabilities.md [Offiziell]. -
Nach jeder Integration die Datensicherheitserklärung und die Datenschutzerklärung aktualisieren und mit der nächsten Version zur Prüfung einreichen (P4 Schritte 2–4)
[Praktisch].
Abschlusskriterien:
- Jede integrierte Funktion wurde vom Benutzer auf einem echten Gerät, installiert über den Test-Track, verifiziert.
- Die PGS-Konfiguration ist veröffentlicht; die Datensicherheitserklärung und die Datenschutzerklärung sind mit den Funktionen konsistent.
- Echte Werbe-IDs sind nur in der Fortschrittsdatei festgehalten und wurden nicht in Testpakete eingebaut.
P7 Produktionsversion beantragen und veröffentlichen (Einreichungsschleuse)
- Nachdem auf der Karte alle drei Haken gesetzt sind, rufe zuerst die in der Vorlage aufgeführten Seiten auf, um die Testdaten zu prüfen. Verfasse dann gemäß
templates/production-access-answers.mddie drei Teile der Umfrage (insgesamt 9 Fragen, jede Textfrage maximal 300 Zeichen) und lasse sie vom Benutzer Punkt für Punkt bestätigen[Praktisch]. - Liste die Punkte gemäß der Einreichungsschleuse für den Benutzer auf: Umfrageantworten, Anzahl der Tester und Tage, voraussichtliches Ergebnis innerhalb von 7 Tagen. Nachdem der Benutzer „Einreichen" sagt, klicke im Dashboard unter „Berechtigung für Produktionsversion beantragen" auf „Produktionsversion beantragen", klicke bei den ersten beiden Schritten auf „Weiter" und beim letzten Schritt auf „Anwenden". Die Einreichung ist erst abgeschlossen, wenn die Meldung „Wir haben Ihren Antrag auf Veröffentlichungsberechtigung erhalten" erscheint
[Praktisch]. Notiere den Einreichungszeitpunkt in der Fortschrittsdatei; das Ergebnis wird per E-Mail und auf der Karte im Dashboard mitgeteilt. - Nach Genehmigung (E-Mail an den Kontoinhaber) bereite die Produktionsversion gemäß Abschnitt 6 von review.md vor:
- Ersetze die Werbe-IDs und die App-ID durch die echten, erhöhe den versionCode um 1 (das Paket kann bereits während des Wartens auf das Ergebnis erstellt werden; dieses Paket wird nur für die Produktionsversion verwendet);
- Veröffentliche zuerst die PGS-Konfiguration, warte mindestens 2 Stunden, bevor das Spiel live geht;
- „Testen und veröffentlichen → Produktion → 'Neue Version erstellen'".
- Durchlaufe die Einreichungsschleuse erneut, reiche die Produktionsversion zur Prüfung ein und überprüfe auf der Seite, ob der Status „Wird geprüft" angezeigt wird.
Abschlusskriterien:
- In der Veröffentlichungsübersicht wird der Eintrag für die Produktionsversion unter „Änderungen werden derzeit geprüft" angezeigt.
- Die Fortschrittsdatei enthält den Einreichungszeitpunkt, die voraussichtliche Dauer und den Ort der Ergebnisprüfung (Veröffentlichungsübersicht, E-Mail).
Wartezeit und nach der Veröffentlichung
- Warten auf Prüfung des geschlossenen Tests (praktisch einige Dutzend Minuten): In dieser Zeit Store-Assets, PGS- und AdMob-Konfiguration erledigen.
- 14 Tage warten: Täglich die Anzahl der Tester und Tage auf der Karte prüfen; 1–2 Updates basierend auf Feedback veröffentlichen; die Integration von Funktionen in diese Zeit legen.
- Warten auf Prüfung der Produktionsberechtigung (ca. 7 Tage): Das echte Werbepaket erstellen und die Checkliste durchgehen (review.md Abschnitt 6); Store-Promotion-Assets vorbereiten.
- Nach der Veröffentlichung: AdMob mit dem Store verknüpfen und app-ads.txt verifizieren (capabilities.md Abschnitt 2.7); Tester des geschlossenen Tests erhalten ebenfalls die Produktionsversion und echte Werbung; das Anhalten des Test-Tracks verhindert dies nicht (review.md Abschnitt 6); in Android vitals die Absturzrate und ANR überwachen. Ab Februar 2027 wird der Speicher bewertet; Spiele mit DEX über 50 MB benötigen Code-Optimierung (Offiziell). Bei jedem Update den versionCode erhöhen, Änderungen sammeln und auf einmal zur Prüfung einreichen.
- Auszahlung: Sobald das AdMob-Guthaben 10 USD übersteigt, müssen die Identität und die Adresse verifiziert werden (PIN-Code per Post, ca. 3 Wochen); ab 100 USD erfolgt die Auszahlung um den 21. eines Monats; für Verkäufe über In-App-Käufe muss zuerst ein Händler-Zahlungsprofil erstellt und ein Bankkonto hinzugefügt werden; die Auszahlung der Einnahmen des Vormonats erfolgt ab dem 15. des Monats. Siehe payouts.md.
- Ablehnung oder Blockierung: Siehe Abschnitt 4 von review.md und troubleshooting.md.