Połącz swoje konta App Store i Google Play.
Czego będziesz potrzebować
Mokbi nigdy nie widzi hasła do twojego sklepu. Zamiast tego tworzysz ograniczony klucz dla każdego sklepu i wklejasz go raz. Jest on weryfikowany ze sklepem, przechowywany w zaszyfrowanej formie, a ty możesz go odłączyć w dowolnym momencie.
- Google Play: klucz service account w Google Cloud, pobrany jako plik JSON, z projektu z włączonym Google Play Android Developer API, oraz ten sam service account zaproszony do twojego Play Console.
- App Store Connect: klucz API, pobrany jako plik
.p8, wraz z jego Key ID i Issuer ID twojego zespołu.
Robisz to tylko raz na sklep. Później publikowanie i ponowna publikacja to jedno kliknięcie. Zacznij od Google, bo ma więcej etapów.
Google Play, część 1: utwórz klucz service account
Dzieje się to w Google Cloud Console (console.cloud.google.com).
- Utwórz lub wybierz projekt, na przykład „Mokbi Publisher”.
- Przejdź do APIs & Services → Library, wyszukaj Google Play Android Developer API i kliknij Enable.
- Przejdź do APIs & Services → Credentials → Create credentials → Service account. Nadaj mu nazwę, na przykład
mokbi-play-publisher. Role projektu możesz zostawić puste — prawdziwe uprawnienia pochodzą z Play Console w części 2. - Otwórz service account, przejdź do zakładki Keys, następnie Add key → Create new key → JSON, i pobierz plik. Ten JSON wklejasz do Mokbi.
client_emailw środku (kończy się na.iam.gserviceaccount.com) to adres, który zapraszasz w następnym kroku, więc miej go pod ręką.
Widzisz komunikat „Service account key creation is disabled”? To zasada organizacji Google o nazwie iam.disableServiceAccountKeyCreation, domyślnie włączona w ramach „Secure by Default”. Wyłącz ją dla tego projektu: IAM & Admin → Organization Policies, znajdź Disable service account key creation, wybierz Manage policy, zaznacz „Override parent's policy”, ustaw Enforcement: Off tylko dla tego projektu i kliknij Save. Odczekaj parę minut i spróbuj ponownie pobrać klucz. Potrzebujesz roli Organization Policy Administrator, którą ma właściciel organizacji albo może ją nadać.
Google Play, część 2: nadaj dostęp w Play Console
To krok, który kosztuje ludzi godziny, więc przeczytaj go uważnie. Dostęp do twojej aplikacji nadaje się wyłącznie w Google Play Console (play.google.com/console), nigdy w Google Cloud IAM. Są dwa miejsca do sprawdzenia:
- Setup → API access: upewnij się, że projekt Google Cloud, w którym znajduje się twój service account, jest tutaj połączony. Bez tego połączenia klucz może się uwierzytelnić, ale dostaje 403 na każdej aplikacji.
- Users and permissions (na dole lewej kolumny, na poziomie konta): wybierz Invite new users, wklej e-mail service account (ten kończący się na
.iam.gserviceaccount.com), a następnie w App permissions dodaj swoją aplikację i nadaj co najmniej Manage store presence. To jedno uprawnienie na poziomie aplikacji wystarczy, by publikować tekst wpisu i zrzuty ekranu — nie potrzebujesz uprawnień Admina na poziomie konta.
Twoja aplikacja musi już istnieć w Play Console. API wpisu edytuje istniejący pakiet, nie tworzy nowej aplikacji, i nie trzeba jeszcze wgrywać żadnego APK ani AAB. Upewnij się, że nazwa pakietu wpisana w Mokbi dokładnie zgadza się z aplikacją.
Pułapka numer jeden: Cloud IAM to nie to samo co Play Console
Jeśli wciąż dostajesz PERMISSION_DENIED, to prawie zawsze dlatego. Google Cloud IAM (strona IAM & Admin → IAM w Cloud Console, gdzie przypisujesz „role” dla service account) kontroluje dostęp do zasobów Google Cloud. Nie ma to żadnego znaczenia dla dostępu do wpisu twojej aplikacji w sklepie. Przypisywanie ról tam nigdy nie naprawi błędu uprawnień sklepu.
Dostęp do aplikacji znajduje się wyłącznie w Play Console, w dwóch miejscach wymienionych wyżej: link API access oraz zaproszenie w Users and permissions. Ustaw je, a ten sam klucz, który zwracał 403, zacznie działać.
Apple: utwórz klucz API App Store Connect
Dzieje się to w App Store Connect (appstoreconnect.apple.com). Mokbi prosi o trzy rzeczy: zawartość pliku .p8, Key ID i Issuer ID.
- Przejdź do Users and Access → Integrations → App Store Connect API. Ta sekcja jest widoczna tylko dla Account Holder twojego zespołu albo dla Admina. Jeśli pojawi się taka prośba, zezwól na klucze zespołu.
- Kliknij Generate API Key, nadaj mu nazwę (na przykład „Mokbi Publisher”) i przypisz mu rolę App Manager.
- Pobierz plik .p8. Możesz go pobrać tylko raz, więc przechowuj go w bezpiecznym miejscu. Zanotuj Key ID pokazany obok klucza oraz Issuer ID, czyli UUID na górze strony Keys.
Podobnie jak w przypadku Google, aplikacja musi już istnieć w App Store Connect. API edytuje istniejący wpis i nie trzeba wgrywać żadnego builda. Publikacja przez Mokbi przygotowuje wersję za ciebie i zatrzymuje się przed wysłaniem do weryfikacji — Submit w App Store Connect naciskasz dopiero wtedy, kiedy uznasz wersję za gotową.
Połącz to w Mokbi
Otwórz projekt, przejdź do kroku Publikacja i skorzystaj z przycisków połączenia:
- Połącz Google Play: wklej pełny JSON service account, a potem kliknij Zweryfikuj i połącz. Wpisz nazwę pakietu i uruchom Testuj połączenie przed publikacją.
- Połącz App Store Connect: otwórz plik
.p8w edytorze tekstu i wklej jego zawartość, dodaj Key ID i Issuer ID, a potem kliknij Zweryfikuj i połącz.
Każdy klucz jest weryfikowany ze sklepem, zanim cokolwiek zostanie zapisane, przechowywany w zaszyfrowanej formie w naszym sejfie, i możliwy do odłączenia w dowolnym momencie za pomocą Rozłącz.
Częste problemy i jak je naprawić
„Service account key creation is disabled.” Zasada organizacji blokuje klucze JSON. Wyłącz iam.disableServiceAccountKeyCreation dla projektu (zobacz Google Play, część 1), odczekaj dwie minuty i spróbuj ponownie.
PERMISSION_DENIED albo 403 na każdej aplikacji. Dostęp nie jest ustawiony w Play Console. Sprawdź, czy projekt Cloud jest połączony w Setup → API access i czy e-mail service account jest zaproszony w Users and permissions z uprawnieniem Manage store presence na twojej aplikacji. Role w Cloud IAM się nie liczą.
Wciąż nie działa zaraz po nadaniu dostępu. Zmiany uprawnień potrzebują kilku minut, żeby się rozpropagować. Zapisz uprawnienie w Play Console jeszcze raz (otwórz je i zapisz ponownie) albo poczekaj chwilę, a potem uruchom Testuj połączenie jeszcze raz. Jako szybki test izolujący: tymczasowe nadanie uprawnienia Admina na poziomie konta dla service account powinno sprawić, że dry run przejdzie — jeśli tak się stanie, wcześniejszy błąd dotyczył zakresu aplikacji albo połączenia projektu.
Zła aplikacja albo nic się nie dzieje. Nazwa pakietu w Mokbi musi dokładnie zgadzać się z aplikacją w Play Console, a aplikacja musi już istnieć w obu konsolach. API wpisu edytuje istniejącą aplikację, nigdy nie tworzy nowej.
Zgubiony plik .p8. Apple pozwala pobrać go tylko raz. Jeśli zniknął, unieważnij ten klucz w App Store Connect i wygeneruj nowy, a potem połącz się ponownie w Mokbi.