Dlaczego warto korzystać z podpisywania aplikacji przez Google Play? Oprócz zabezpieczenia kluczy przed trwałą utratą lub naruszeniem bezpieczeństwa rejestracja w podpisywaniu aplikacji przez Google Play odblokowuje ulepszenia dla pakietów Android App Bundle (.aab). Gdy pozwolisz Google podpisywać zoptymalizowane pliki APK wygenerowane z pakietów aplikacji na potrzeby dystrybucji, uzyskasz dostęp do przydatnych usług, takich jak automatyczna ochrona i automatyczne tłumaczenie ciągów tekstowych za pomocą modeli Gemini. Gry uzyskują dostęp do dodatkowych usług automatycznych, takich jak panel Sidekick w Grach Play, granie podczas pobierania i bezpłatne wersje próbne płatnych tytułów.
Aby skonfigurować podpisywanie aplikacji przez Google Play, musisz być właścicielem konta.
Podstawowe pojęcia
Gdy korzystasz z podpisywania aplikacji przez Google Play, masz do czynienia z 2 różnymi kluczami. Zrozumienie różnic między nimi i ich formatów technicznych jest kluczowe, aby uniknąć problemów z uwierzytelnianiem w interfejsach API innych firm.
| Typ klucza | Kto go posiada? | Szczegóły techniczne i cel |
|
Klucz przesyłania |
Ty (nie ujawniaj go!) |
|
| Klucz podpisywania aplikacji |
Google Play |
|
| Gotowość na erę kwantową | Google Play |
|
Uwaga: aby zapewnić maksymalne bezpieczeństwo, klucz przesyłania i klucz podpisywania aplikacji powinny się od siebie różnić.
Jak Google podpisuje Twoją aplikację: gdy Google generuje i podpisuje Twoje pliki APK kluczem podpisywania aplikacji, używa narzędzia apksigner, aby dodać 2 znaczniki do pliku manifestu aplikacji (com.android.stamp.source i com.android.stamp.type). Te sygnatury zapewniają bezpieczne śledzenie plików APK do pierwotnego sygnatariusza.
Konfigurowanie podpisywania aplikacji przez Google Play
Proces konfiguracji zależy od tego, czy publikujesz nową aplikację, czy przenosisz istniejącą.
W przypadku nowych aplikacji
- Utwórz nową aplikację: Twoja aplikacja zostanie automatycznie zarejestrowana w podpisywaniu hybrydowym gotowym na erę kwantową za pomocą kluczy wygenerowanych przez Google. Wygenerujemy też osobny klucz klasyczny, który będzie używany w blokach podpisu rozpoznawanych na urządzeniach z Androidem 16 lub starszym.
- Utwórz klucz przesyłania: wygeneruj magazyn kluczy do podpisywania pakietu aplikacji wersji. Możesz go wygenerować w Android Studio lub użyć narzędzia Java keytool w wierszu poleceń.
- Prześlij pakiet aplikacji: otwórz Konsolę Play i przygotuj nową wersję. Domyślnie po przesłaniu pakietu aplikacja jest automatycznie rejestrowana w podpisywaniu hybrydowym gotowym na erę kwantową z użyciem kluczy wygenerowanych przez Google.
- Zmień klucz podpisywania aplikacji (opcjonalnie): zaawansowani programiści, którzy chcą zarządzać własnym kluczem, mogą zmienić to ustawienie domyślne, zanim wersja zostanie wdrożona na ścieżce testów otwartych lub ścieżce produkcyjnej. Aby to zrobić, kliknij Chronione przez Google Play > Dystrybucja w Sklepie Play > Przejdź do podpisywania aplikacji przez Google Play, a następnie Zmień klucz podpisywania aplikacji. Następnie możesz:
- użyć tego samego klucza, który został użyty w innej aplikacji na tym koncie dewelopera;
- Prześlij kopię klucza podpisywania aplikacji (zgodnie z instrukcjami).
W przypadku opublikowanych aplikacji
Jeśli obecnie zarządzasz własnymi kluczami i przesyłasz pliki APK, możesz przejść na podpisywanie aplikacji przez Google Play, aby korzystać z pakietów aplikacji i ulepszeń w Google Play.
- W Konsoli Play kliknij Ochrona w Google Play > Dystrybucja w Google Play > Przejdź do podpisywania aplikacji przez Google Play.
- Zaakceptuj warunki usługi, jeśli nie zostały jeszcze przez Ciebie zaakceptowane.
- Prześlij kopię oryginalnego klucza: pobierz narzędzie PEPK i postępuj zgodnie z ujednoliconymi instrukcjami, aby zaszyfrować i przesłać obecny klucz podpisywania aplikacji z dowolnego repozytorium.
Rejestracja u dostawców interfejsów API
Jeśli aplikacja korzysta z interfejsów API (np. Map Google, OAuth lub Logowanie przez Facebooka), te usługi uwierzytelniają aplikację za pomocą odcisku cyfrowego klucza podpisywania aplikacji.
Ponieważ Google podpisuje końcowy plik APK, musisz zarejestrować u dostawców interfejsów API odcisk cyfrowy klucza podpisywania aplikacji przechowywanego przez Google, a nie tylko lokalny klucz przesyłania.
- Kliknij Chronione przez Google Play > Dystrybucja w Sklepie Play > Przejdź do podpisywania aplikacji przez Google Play.
- Przewiń do sekcji Klucz podpisywania aplikacji.
- Skopiuj wymagane odciski cyfrowe (SHA-1 lub SHA-256). Jeśli aplikacja korzysta z podpisywania hybrydowego gotowego na erę kwantową, musisz skopiować odciski cyfrowe 3 kluczy i zarejestrować każdy z nich u dostawców interfejsów API – nowy klucz klasyczny i klucz PQC używane na nowszych urządzeniach oraz klucz klasyczny używany na starszych urządzeniach.
- Wklej te odciski cyfrowe w konsoli dostawcy interfejsu API (np. w konsoli Google Cloud).
Wskazówka: jeśli używasz linków aplikacji na Androida, zaktualizuj plik assetlinks.json o te odciski cyfrowe.
Zarządzanie kluczami
Uaktualnianie klucza podpisywania aplikacji
Jeśli Twój klucz podpisywania aplikacji zostanie naruszony lub potrzebujesz klucza o lepszym szyfrowaniu, możesz raz w roku poprosić o uaktualnienie klucza w przypadku wszystkich instalacji na Androidzie 17 (poziom interfejsu API 37) lub nowszym.
Jak egzekwowanie działa w różnych wersjach Androida:
- Android 17 (poziom interfejsu API 37) i nowszy: platforma Androida ściśle wymusza używanie uaktualnionego klucza hybrydowego gotowego na erę kwantową. Zobacz schemat podpisywania plików APK w wersji 3.2.
- Android 13 (poziom API 33) do Androida 16 (poziom API 36): platforma Androida ściśle wymusza używanie najnowszego klucza klasycznego. Zobacz schemat podpisywania plików APK w wersji 3.1.
- Od Androida 7 (poziom interfejsu API 24) do Androida 12 (poziom interfejsu API 32): sama platforma Androida nie wymusza używania uaktualnionego klucza i nadal rozpoznaje najnowszy klucz klasyczny. Jednak Google Play Protect zapewnia dodatkową weryfikację, sprawdzając, czy aktualizacje aplikacji są podpisane najnowszym kluczem klasycznym (chyba że użytkownik to wyłączy).
Ważna uwaga:
- Udostępnione dane: ponieważ platforma nie wymusza używania uaktualnionego klucza na urządzeniach z Androidem S (poziom interfejsu API 32) lub starszym, jeśli używasz tego samego klucza w wielu aplikacjach do udostępniania danych, te starsze wersje Androida będą rozpoznawać tylko starszy klucz w przypadku funkcji takich jak udostępnianie uprawnień niestandardowych.
Jak uaktualnić:
- Kliknij Chronione przez Google Play > Dystrybucja w Sklepie Play > Przejdź do podpisywania aplikacji przez Google Play.
- W sekcji Klucz podpisywania aplikacji kliknij Uaktualnij klucz.
- Wybierz ścieżkę uaktualnienia:
- Pozwól Google Play na wygenerowanie nowego klucza podpisywania aplikacji (zalecane)
- Użyj klucza podpisywania aplikacji, który został już użyty w innej aplikacji na tym koncie dewelopera.
- Prześlij kopię klucza podpisywania aplikacji (zgodnie z instrukcjami).
- Kliknij Zapisz.
- Zarejestruj nowe odciski cyfrowe klucza u dostawców interfejsów API. Jeśli aplikacja korzysta z podpisywania hybrydowego gotowego na erę kwantową, musisz zarejestrować odciski cyfrowe 2 nowych kluczy – nowego klucza klasycznego i nowego klucza PQC.
Prośba o zresetowanie klucza przesyłania
Jeśli utracisz klucz przesyłania lub będziesz podejrzewać, że dostał się on w niepowołane ręce, nie stracisz dostępu do aplikacji.
- Utwórz nowy klucz przesyłania w Android Studio.
- Wyeksportuj certyfikat do formatu PEM:
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
(Więcej informacji o narzędziu keytool i ścieżkach do magazynu kluczy znajdziesz w przewodniku po podpisywaniu aplikacji w Android Studio). - Po wygenerowaniu pliku PEM prześlij prośbę o zresetowanie w Konsoli Play.
- Kliknij Chronione przez Google Play > Ochrona w Sklepie Play > Zarządzaj podpisywaniem aplikacji przez Google Play.
- W sekcji Certyfikat klucza przesyłania kliknij Poproś o zresetowanie klucza przesyłania.
- Podaj powód resetowania.
- Prześlij plik
upload_certificate.pemi kliknij Wyślij prośbę.
Sprawdzone metody i alternatywna dystrybucja
- Bezpieczeństwo: chroń dostęp do Konsoli Play, wymuszając weryfikację dwuetapową u wszystkich użytkowników.
- Ulepszenia pakietu aplikacji: rejestracja w usłudze podpisywania aplikacji przez Google Play umożliwia korzystanie z ulepszeń w przypadku pakietów aplikacji. Aby zastosować ulepszenia, najpierw wprowadź niezbędne zmiany w konfiguracji podczas tworzenia nowej wersji, a potem prześlij nowy pakiet aplikacji.
- Dystrybucja poza Google Play: jeśli dystrybuujesz aplikację w innych sklepach z aplikacjami i chcesz wszędzie używać tego samego klucza podpisywania, masz 2 możliwości. [1] Możesz zezwolić Google na wygenerowanie klucza podpisywania aplikacji i pobrać podpisany, uniwersalny plik APK z Konsoli Play lub interfejsu Play Developer API, aby rozpowszechniać go w innych miejscach (w Konsoli Play kliknij Testowanie i wdrażanie > Najnowsze wersje i pakiety, wybierz pakiet aplikacji i kliknij kartę Pobieranie). [2] Możesz też wygenerować klucz podpisywania aplikacji, którego chcesz używać we wszystkich sklepach z aplikacjami, a potem przenieść jego kopię do Google, gdy skonfigurujesz podpisywanie aplikacji przez Google Play. Dowiedz się więcej o tym, jak działają aktualizacje aplikacji, oraz o opcjach włączania i wyłączania aktualizacji w różnych sklepach.
- Testowanie: użyj wewnętrznego udostępniania aplikacji, aby sprawdzić, co dokładnie Google Play dostarczy użytkownikom, lub pobierz pliki APK dla konkretnych urządzeń z Eksploratora pakietów aplikacji i zainstaluj je lokalnie za pomocą polecenia adb install-multiple *.apk.
- Schemat podpisu plików APK w wersji 4: podpisywanie aplikacji przez Google Play automatycznie używa podpisu w wersji 4 w przypadku kwalifikujących się aplikacji, aby obsługiwać zoptymalizowaną dystrybucję na urządzeniach z Androidem 11 lub nowszym. Nie musisz nic robić. Nie obejmuje to wszystkich aplikacji korzystających z podpisywania hybrydowego gotowego na erę kwantową, które nie jest jeszcze zgodne z podpisywaniem w wersji 4. Więcej informacji o zaletach technicznych znajdziesz w dokumentacji schematu podpisu pakietów APK w wersji 4.
Projekty Google Cloud hostowane samodzielnie
Jeśli masz bardzo specyficzne wymagania dotyczące bezpieczeństwa (np. używasz kluczy OEM), możesz użyć interfejsu Play Developer API, aby zarejestrować się w usłudze podpisywania aplikacji przez Google Play za pomocą projektu w chmurze Google Cloud hostowanego samodzielnie.
Jest to niestandardowa konfiguracja, której nie zalecamy. Korzystanie z projektu hostowanego samodzielnie oznacza, że ponosisz pełną odpowiedzialność za operacje podpisywania aplikacji.
- Uniemożliwia to Google Play wykonywanie podstawowych funkcji, takich jak odtwarzanie awaryjne.
- Google nie może ponownie wygenerować ani naprawić istniejącego wydania. Aby naprawić błędy związane z wersją, musisz przesłać nową wersję.
- W tej konfiguracji mogą być niedostępne zaawansowane optymalizacje, niektóre ulepszenia Play i funkcje zabezpieczeń, takie jak hybrydowe podpisywanie gotowe na erę kwantową.
- Wygeneruj lub zaimportuj klucze podpisywania do Cloud KMS, upewniając się, że lokalizacja jest skonfigurowana jako wiele regionów w USA, i postępuj zgodnie z dokumentacją importowania kluczy KMS.
- Aby zmienić klucz podpisywania, użyj metody enrollApp. Klucze podpisywania można zmienić tylko przed opublikowaniem aplikacji na ścieżkach testów otwartych lub produkcyjnej.
- Aby uaktualnić klucz podpisywania po opublikowaniu aplikacji, użyj metody rotateAppSigningKey.
- Przypisz te role uprawnień do klienta lub konta usługi uwierzytelniającego się za pomocą interfejsu Google Play Developer API:
- Upewnij się, że masz wystarczający limit do wykonywania operacji kryptograficznych. Zalecamy zwiększenie limitu asymmetric_requests do co najmniej 350 zapytań na sekundę.
- Aby zobaczyć, jak używane są klucze podpisywania, włącz dziennik kontrolny w projekcie Cloud KMS.