Verbinde deine App-Store- und Google-Play-Konten.
Was du brauchst
Mokbi sieht dein Store-Passwort nie. Stattdessen erstellst du für jeden Store einen begrenzt berechtigten Schlüssel und fügst ihn einmal ein. Er wird beim Store verifiziert, verschlüsselt gespeichert, und du kannst die Verbindung jederzeit trennen.
- Google Play: ein Service-Account-Schlüssel von Google Cloud, heruntergeladen als JSON-Datei, aus einem Projekt mit aktivierter Google Play Android Developer API — plus dieser Service Account, eingeladen in deine Play Console.
- App Store Connect: ein API-Schlüssel, heruntergeladen als
.p8-Datei, plus die zugehörige Key ID und die Issuer ID deines Teams.
Das machst du nur einmal pro Store. Danach ist Veröffentlichen und erneutes Veröffentlichen nur noch ein Klick. Fang mit Google an, da steckt mehr drin.
Google Play, Teil 1: den Service-Account-Schlüssel erstellen
Das passiert in der Google Cloud Console (console.cloud.google.com).
- Erstelle oder wähle ein Projekt, zum Beispiel „Mokbi Publisher“.
- Geh zu APIs & Services → Library, such nach Google Play Android Developer API und klick auf Enable.
- Geh zu APIs & Services → Credentials → Create credentials → Service account. Gib ihm einen Namen wie
mokbi-play-publisher. Die Projektrollen kannst du leer lassen — die eigentlichen Berechtigungen kommen in Teil 2 aus der Play Console. - Öffne den Service Account, geh zum Tab Keys, dann Add key → Create new key → JSON, und lade die Datei herunter. Diese JSON-Datei fügst du in Mokbi ein. Die
client_emaildarin (sie endet auf.iam.gserviceaccount.com) ist die Adresse, die du im nächsten Schritt einlädst — merk sie dir also gut.
Kommt die Meldung „Service account key creation is disabled“? Das ist eine Google-Organisationsrichtlinie namens iam.disableServiceAccountKeyCreation, standardmäßig aktiv unter „Secure by Default“. So schaltest du sie für dieses Projekt aus: Geh zu IAM & Admin → Organization Policies, such dort Disable service account key creation, wähl Manage policy, dann „Override parent's policy“, setze Enforcement: Off für dieses Projekt und klick auf Save. Warte ein paar Minuten und versuch den Schlüssel noch einmal. Dafür brauchst du die Rolle Organization Policy Administrator, die ein Org-Owner entweder schon hat oder dir zuweisen kann.
Google Play, Teil 2: Zugriff in der Play Console vergeben
Dieser Schritt kostet die meisten Leute Stunden, also lies genau weiter. Zugriff auf deine App wird ausschließlich in der Google Play Console (play.google.com/console) vergeben, nie in Google Cloud IAM. Zwei Stellen musst du prüfen:
- Setup → API access: Stell sicher, dass das Google-Cloud-Projekt mit deinem Service Account hier verlinkt ist. Ohne diese Verknüpfung kann sich der Schlüssel zwar authentifizieren, bekommt aber bei jeder App einen 403.
- Users and permissions (unten in der linken Spalte, auf Kontoebene): Wähl Invite new users, füg die E-Mail-Adresse des Service Accounts ein (die mit
.iam.gserviceaccount.com), und vergib dann unter App permissions für deine App mindestens Manage store presence. Diese eine App-Berechtigung reicht, um Store-Text und Screenshots zu veröffentlichen — Admin auf Kontoebene brauchst du nicht.
Deine App muss in der Play Console bereits existieren. Die Listing-API bearbeitet ein bestehendes Package, sie legt keine neue App an, und es muss noch keine APK oder AAB hochgeladen werden. Achte darauf, dass der Package-Name, den du in Mokbi einträgst, exakt mit der App übereinstimmt.
Der größte Stolperstein: Cloud IAM ist nicht die Play Console
Wenn du ständig PERMISSION_DENIED bekommst, liegt es fast immer daran. Google Cloud IAM (die Seite IAM & Admin → IAM in der Cloud Console, wo du dem Service Account „Rollen“ zuweist) steuert den Zugriff auf Google-Cloud-Ressourcen. Für den Zugriff auf den Store-Eintrag deiner App bewirkt das nichts. Rollen dort zuzuweisen behebt niemals einen Store-Berechtigungsfehler.
Der App-Zugriff liegt komplett in der Play Console, an den zwei oben genannten Stellen: der Verknüpfung unter API access und der Einladung unter Users and permissions. Sind beide gesetzt, funktioniert derselbe Schlüssel, der eben noch einen 403 lieferte, auf einmal.
Apple: einen App Store Connect API-Schlüssel erstellen
Das passiert in App Store Connect (appstoreconnect.apple.com). Mokbi braucht drei Dinge: den Inhalt der .p8-Datei, die Key ID und die Issuer ID.
- Geh zu Users and Access → Integrations → App Store Connect API. Dieser Bereich ist nur für den Account Holder deines Teams oder einen Admin sichtbar. Falls gefragt, erlaube Team-Schlüssel.
- Klick auf Generate API Key, gib ihm einen Namen (zum Beispiel „Mokbi Publisher“) und weise ihm die Rolle App Manager zu.
- Lade die .p8-Datei herunter. Das geht nur einmal, also bewahr sie sicher auf. Notier dir die Key ID neben dem Schlüssel und die Issuer ID, die UUID oben auf der Keys-Seite.
Wie bei Google muss die App in App Store Connect bereits existieren. Die API bearbeitet einen bestehenden Eintrag, ein Build muss nicht hochgeladen werden. Veröffentlichen mit Mokbi bereitet die Version für dich vor und stoppt vor der Einreichung zur Prüfung — auf Submit klickst du selbst in App Store Connect, sobald du so weit bist.
Verbinde es in Mokbi
Öffne ein Projekt, geh zum Schritt Veröffentlichen und nutz die Connect-Buttons:
- Google Play verbinden: füg das vollständige Service-Account-JSON ein, dann klick auf Prüfen & verbinden. Gib deinen Package-Namen ein und klick vor dem Veröffentlichen auf Verbindung testen.
- App Store Connect verbinden: öffne die
.p8-Datei in einem Texteditor, füg ihren Inhalt ein, ergänze Key ID und Issuer ID, dann klick auf Prüfen & verbinden.
Jeder Schlüssel wird beim Store verifiziert, bevor überhaupt etwas gespeichert wird, liegt danach verschlüsselt in unserem Vault und lässt sich jederzeit über Trennen wieder entfernen.
Häufige Probleme und wie du sie behebst
„Service account key creation is disabled.“ Eine Organisationsrichtlinie blockiert JSON-Schlüssel. Schalte iam.disableServiceAccountKeyCreation für das Projekt aus (siehe Google Play, Teil 1), warte zwei Minuten und versuch es erneut.
PERMISSION_DENIED oder 403 bei jeder App. Der Zugriff ist in der Play Console nicht gesetzt. Prüf, ob das Cloud-Projekt unter Setup → API access verlinkt ist und ob die E-Mail-Adresse des Service Accounts unter Users and permissions mit Manage store presence für deine App eingeladen wurde. Rollen in Cloud IAM zählen dabei nicht.
Es schlägt direkt nach dem Setzen der Berechtigung noch fehl. Berechtigungsänderungen brauchen ein paar Minuten, bis sie greifen. Speicher die Berechtigung in der Play Console erneut (öffnen und nochmal speichern) oder warte etwas, und klick dann noch einmal auf Verbindung testen. Als schnellen Isolationstest kannst du dem Service Account vorübergehend Admin auf Kontoebene geben — klappt der Testlauf dann, lag das ursprüngliche Problem am App-Umfang oder an der Projekt-Verknüpfung.
Falsche App, oder es passiert nichts. Der Package-Name in Mokbi muss exakt mit der App in der Play Console übereinstimmen, und die App muss in beiden Konsolen bereits existieren. Die Listing-API bearbeitet eine bestehende App, sie legt nie eine neue an.
.p8-Datei verloren. Apple lässt dich sie nur einmal herunterladen. Ist sie weg, widerrufe den Schlüssel in App Store Connect, erzeuge einen neuen und verbinde dich in Mokbi erneut.