Opting in Existing Apps to Google Play App Signing

Jomar Tigcal
Jul 6, 2020 – 5 min read

App Signing przez Google Play istnieje od 2017 roku. Dzięki App Signing, Google zarządza kluczami podpisywania aplikacji i używa ich do podpisywania twoich APK do dystrybucji. Zapisanie aplikacji w App Signing jest opcjonalne. Być może zdecydowałeś się na obsługę podpisywania i przechowywania kluczy zamiast przesyłania ich do Google Play.

Teraz zmieniłeś zdanie i chcesz, aby Google zarządzał Twoimi kluczami podpisywania, zamiast robić to osobiście. Lub chcesz spróbować zmniejszyć rozmiar swojej aplikacji i uprościć proces wydawania z Android App Bundle, ale jesteś zobowiązany do korzystania z App Signing dla niego. Więc jak można opt-in swoje istniejące aplikacje do App Signing?

Opting in do podpisywania aplikacji przez Google Play

Przed zapisaniem aplikacji do App Signing przez Google Play, są dwie rzeczy, które musisz wiedzieć. Po pierwsze, nie ma opt-out więc upewnij się, że jesteś na to gotowy. Ponadto, nie będzie można pobrać klucze podpisywania aplikacji z Google Play, więc jeśli potrzebujesz go w przyszłości, przechowywać je gdzieś bezpiecznie.

Aby zapisać aplikację w App Signing, musisz przesłać swój klucz podpisywania aplikacji do Google Play. Otwórz swoją aplikację w konsoli Google Play i przejdź do Zarządzanie wydaniami > Podpisywanie aplikacji (Wydanie > Konfiguracja > Podpisywanie aplikacji w nowej konsoli Google Play). Przeczytaj i zaakceptuj Warunki korzystania z usługi.

Istnieją trzy opcje eksportowania i przesyłania klucza podpisywania aplikacji: z Android Studio, z magazynu kluczy Java i ze swojego klucza (jeśli nie używasz magazynu kluczy Java).

Eksportowanie i przesyłanie klucza z Android Studio

Używanie Android Studio to najprostszy sposób na wyeksportowanie klucza podpisywania aplikacji. Otwórz menu Build, a następnie kliknij Build > Generate Signed Bundle / APK… W oknie dialogowym Generate Signed Bundle lub APK, wybierz Android App Bundle, a następnie kliknij Next. Wybierz Export encrypted key for enrolling published apps in Google Play App Signing, ustaw lokalizację, gdzie chcesz go wyeksportować, a następnie kliknij Next. Program Android Studio wygeneruje pakiet i wyeksportuje plik private_key.pepk w podanym katalogu.

Eksportuj zaszyfrowany klucz za pomocą programu Android Studio

Na stronie Podpisywanie aplikacji w konsoli Google Play wybierz opcję “Eksportuj i prześlij klucz z programu Android Studio” i prześlij wygenerowany przez program Android Studio klucz.

Eksportuj i prześlij klucz z magazynu kluczy Java

Jeśli do podpisywania aplikacji używasz magazynu kluczy Java, wybierz opcję “Eksportuj i prześlij klucz z magazynu kluczy Java” na stronie Podpisywanie aplikacji w konsoli Google Play. Pobierz narzędzie Play Encrypt Private Key (PEPK) z konsoli i zapisz je w preferowanej lokalizacji. Zwróć również uwagę na klucz szyfrowania w instrukcjach.

Narzędzie PEPK to plik JAR, który pozwala wyeksportować i zaszyfrować klucz podpisywania aplikacji. Na przykład, jeśli masz następujące pliki:
* narzędzie PEPK w /Users/admin/Downloads
* klucz podpisywania aplikacji signing-key.jks, który ma “release” jako alias, znajdujący się w tym samym folderze co pepk.jar
* zaszyfrowany klucz z konsoli Google Play o wartości encryptionkeyfromtheconsole

możesz wyeksportować klucz do encryptedkey.pepk za pomocą następującej komendy:

java -jar /Users/admin/Downloads/pepk.jar – keystore=signing-key.jks – alias=release – output=/Users/admin/Downloads/encryptedkey.pepk – encryptionkey=encryptionkeyfromtheconsole

W terminalu pojawi się pytanie o keystore i hasło do klucza. Po ich wprowadzeniu, polecenie wygeneruje plik encryptedkey.pepk w katalogu /Users/admin/Downloads/. Na stronie podpisywania aplikacji Google Play Console wybierz opcję “Eksportuj i prześlij klucz z magazynu kluczy Java” i prześlij plik encryptedkey.pepk.

Eksportuj i prześlij klucz (nie używając magazynu kluczy Java)

Jeśli klucz podpisywania aplikacji nie został utworzony przy użyciu magazynu kluczy Java, wybierz opcję “Eksportuj i prześlij klucz (nie używając magazynu kluczy Java)” na stronie podpisywania aplikacji Google Play Console. Możesz pobrać kod źródłowy narzędzia PEPK i użyć zakodowanego heksadecymalnie klucza publicznego dostarczonego w konsoli do wyeksportowania klucza prywatnego.

Na stronie Podpisywanie aplikacji w konsoli Google Play wybierz opcję “Wyeksportuj i prześlij klucz (nie używając Java Keystore)” i prześlij wyeksportowany klucz.

Tworzenie klucza przesyłania

Klucz przesyłania to klucz, którego użyjesz do podpisania pakietu aplikacji lub APK przed opublikowaniem go w Google Play. Możesz użyć tego samego klucza podpisywania co klucz przesyłania, więc proces będzie taki sam jak wcześniej. Jednak lepiej jest użyć innego klucza przesyłania, aby klucz podpisywania aplikacji nie został naruszony.

Aby utworzyć klucz przesyłania dla swojej aplikacji, musisz utworzyć nowy klucz podpisywania i przesłać jego certyfikat publiczny (w formacie PEM). Możesz utworzyć nowy klucz w Android Studio. W menu Build, kliknij Build > Generate Signed Bundle / APK… W oknie dialogowym Generate Signed Bundle or APK, wybierz Android App Bundle lub APK, a następnie kliknij Next. Kliknij przycisk Create new… poniżej tekstu wejściowego Key store path. Podaj informacje w oknie dialogowym Nowy magazyn kluczy, a następnie kliknij OK.

Generowanie nowego magazynu kluczy z Android Studio

Powiedzmy, że twój nowy klucz przesyłania to upload-key.jks z “alias” jako alias, możesz wyeksportować jego klucz do upload-cert.pem wykonując następujące polecenie:

keytool -export -rfc -keystore upload-key.jks -alias alias -file upload-cert.pem

Terminal zapyta o hasło do keystore. Gdy podasz je poprawnie, polecenie wygeneruje plik upload-cert.pem. Możesz następnie przesłać ten plik PEM w Google Play Console. Teraz musisz podpisać kolejne aktualizacje aplikacji za pomocą klucza upload-key.jks.

What’s Next?

Po przesłaniu klucza podpisywania aplikacji (i utworzeniu nowego klucza przesyłania), możesz kliknąć przycisk Zakończ (Zapisz w nowej konsoli Google Play), aby zapisać zmiany. Zobaczysz powiadomienie, że podpisywanie aplikacji jest teraz włączone dla aplikacji. Możesz teraz użyć Android App Bundle podczas publikowania następnej aktualizacji.

Strona App Signing wyświetli również certyfikaty dla klucza podpisywania aplikacji i klucza przesyłania, wraz z ich podpisami kluczy (MD5, SHA-1, SHA-256), których będziesz musiał użyć dla niektórych interfejsów API.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.