Podpisz aplikację

Android wymaga, aby wszystkie pliki APK były podpisane cyfrowo certyfikatem które są zainstalowane na urządzeniu lub zaktualizowane. W przypadku publikowania za pomocą aplikacji na Androida pakiety, musisz podpisać pakiet aplikacji za pomocą pliku przesyłanego; przed przesłaniem go do Konsoli Play, a funkcja podpisywania aplikacji przez Google Play zajmie się tym reszta. Aplikacje rozpowszechniane przy użyciu plików APK w Sklepie Play lub na innych platformach musisz ręcznie podpisać pliki APK do przesłania.

Na tej stronie znajdziesz informacje o ważnych zagadnieniach związanych z podpisywaniem aplikacji i jak podpisać aplikację do opublikowania w Google Play przy użyciu Android Studio, i jak skonfigurować podpisywanie aplikacji przez Google Play.

Poniżej znajduje się ogólny przegląd kroków, które możesz podjąć, aby podpisz i opublikuj nową aplikację w Google Play.

  1. Generowanie klucza przesyłania i magazynu kluczy
  2. Podpisywanie aplikacji kluczem przesyłania
  3. Konfigurowanie podpisuwania aplikacji przez Google Play
  4. Przesyłanie aplikacji do Google Play
  5. Przygotowanie i wdrażanie wersji aplikacji

Jeśli zamiast tego Twoja aplikacja została już opublikowana w Sklepie Google Play z oznaczeniem istniejącego klucza podpisywania aplikacji lub chcesz możesz utworzyć nową aplikację, zamiast generować ją przez Google, wykonaj te czynności:

  1. Podpisz aplikację jej kluczem podpisywania.
  2. Prześlij klucz podpisywania aplikacji do usługi podpisywania aplikacji przez Google Play.
  3. (Zalecane) Wygeneruj i zarejestruj certyfikat przesyłania o przyszłe aktualizacje aplikacji
  4. Przesyłanie aplikacji do Google Play
  5. Przygotowanie i wdrażanie wersji aplikacji

Z tej strony dowiesz się też, jak zarządzać własnymi kluczami podczas przesyłania aplikacji do innych sklepów z aplikacjami. Jeśli nie korzystasz z Android Studio lub wolisz podpisać z wiersza poleceń, dowiedz się, jak używać apksigner

Podpisywanie aplikacji przez Google Play

Gdy korzystasz z podpisywania aplikacji przez Google Play, Google zarządza podpisywaniem Twojej aplikacji i zabezpiecza je i używa go do podpisywania plików APK przeznaczonych do dystrybucji. A ponieważ aplikacja pakiety APK opóźniają kompilowanie i podpisywanie plików APK do Sklepu Google Play. Musisz skonfiguruj podpisywanie aplikacji przez Google Play przed przesłaniem pakietu aplikacji. Robię to zapewnia następujące korzyści:

  • Używaj pakietu Android App Bundle i obsługuj zaawansowane tryby dostarczania w Google Play. Android App Bundle sprawia, że aplikacja jest znacznie mniejsza, prostsza w tworzeniu, i umożliwia korzystanie z modułów funkcji oraz oferowanie aplikacji błyskawicznych.
  • Zwiększenie bezpieczeństwa klucza podpisywania i umożliwienie stosowania oddzielnym kluczem przesyłania, by podpisać pakiet aplikacji, który przesyłasz do Google Play.
  • Uaktualnienie klucza umożliwia zmianę klucza podpisywania aplikacji w przypadku, gdy bieżąca została przejęta lub musisz przeprowadzić migrację klucz o lepszym szyfrowaniu

Usługa podpisywania aplikacji przez Google Play używa 2 kluczy: klucza podpisywania aplikacji i klucza przesyłania Google. Szczegółowo opisujemy to w sekcji dotyczącej kluczy i magazyny kluczy. Zachowujesz klucz przesyłania i używasz go do podpisywania aplikację do przesłania do Sklepu Google Play. Google używa certyfikatu przesyłania aby potwierdzić Twoją tożsamość i podpisać pliki APK kluczem podpisywania aplikacji jak widać na rysunku 1. Używając oddzielnego klucza przesyłania, możesz: poprosić o zresetowanie klucza przesyłania nawet jeśli klucz zostanie zgubiony lub przejęty.

Dla porównania: w przypadku aplikacji, które nie mają jeszcze dostępu do Google Play Jeśli utracisz klucz podpisywania aplikacji, utracisz możliwość aktualizowania aplikacji.

Rysunek 1. Podpisywanie aplikacji przez Google Play

Klucze są przechowywane w tej samej infrastrukturze, której Google używa do przechowywania w których są chronione przez system zarządzania kluczami Google. Dostępne opcje więcej informacji o infrastrukturze technicznej Google znajdziesz w Raporty na temat zabezpieczeń Google Cloud

Podczas korzystania z podpisywania aplikacji przez Google Play utracisz klucz przesyłania został przejęty, możesz poprosić o zresetowanie klucza przesyłania w Konsoli Play. Twój klucz podpisywania aplikacji jest zabezpieczony przez Google, więc możesz nadal przesyłaj nowe wersje swojej aplikacji jako aktualizacje pierwotnej aplikacji, nawet po zmianie kluczy przesyłania. Więcej informacji znajdziesz w sekcji Resetowanie utraconego lub przejętego konta prywatny klucz przesyłania.

W następnej sekcji znajdziesz ważne terminy i koncepcje związane z aplikacjami i zabezpieczenia. Jeśli wolisz przejść dalej i dowiedzieć się, jak przygotować do przesłania do Sklepu Google Play, przejdź do sekcji Podpisywanie aplikacji pod wersji.

Magazyny kluczy, klucze i certyfikaty

Magazyny kluczy Java (.jks lub .keystore) to pliki binarne, które służą jako repozytoria certyfikatów i kluczy prywatnych.

certyfikat klucza publicznego (pliki .der lub .pem), nazywany również cyfrowym, certyfikat lub certyfikat tożsamości, zawiera klucz publiczny para kluczy publiczny/prywatny, a także inne metadane identyfikujące właściciela. (na przykład imię i nazwisko oraz lokalizacja) właściciela odpowiedniego klucza prywatnego.

Poniżej znajdziesz informacje o różnych typach kluczy:

  • Klucz podpisywania aplikacji: klucz używany do podpisywania plików APK zainstalowanych na na urządzeniu użytkownika. W ramach modelu bezpiecznego aktualizacji Androida klucz podpisywania nigdy zmian w trakcie użytkowania aplikacji. Klucz podpisywania aplikacji jest prywatny i musi zachować w tajemnicy. Możesz jednak udostępnić wygenerowany certyfikat przy użyciu klucza podpisywania aplikacji.
  • Klucz przesyłania: klucz używany do podpisywania pakietu aplikacji lub pliku APK przed przesłać ją do podpisywania aplikacji przez Google Play. Musisz nie ujawniać klucza przesyłania. Możesz jednak udostępnić certyfikat, który jest generowany za pomocą klucza przesyłania. Klucz przesyłania możesz wygenerować w jednej z w następujący sposób:

    • Jeśli zdecydujesz się na wygenerowanie przez Google klucza podpisywania aplikacji podczas musisz włączyć tę funkcję, klucz używany do podpisania aplikacji do opublikowania to jako klucz przesyłania.
    • Jeśli przekażesz Google klucz podpisywania aplikacji przy włączaniu nowych lub możesz wygenerować nowy klucz przesyłania po włączeniu zabezpieczeń.
    • Jeśli nie wygenerujesz nowego klucza przesyłania, nadal będziesz korzystać z aplikacji. jako klucz podpisywania do podpisywania każdej wersji.

    Wskazówka: aby zabezpieczyć klucze, warto upewnić się, są różne.

Współpraca z dostawcami interfejsów API

Możesz pobrać certyfikat klucza podpisywania aplikacji i przesyłania z klawisza Release > Konfiguracja > stronie podpisywania aplikacji w Konsoli Play. Służy do rejestrowania kluczy publicznych w dostawcy interfejsów API; jest przeznaczone do udostępnienia, bo nie zawiera Twoich prywatnych .

Odcisk cyfrowy certyfikatu to krótki, unikalny identyfikator certyfikatu często żądanego przez dostawców interfejsów API wraz z nazwą pakietu. aby zarejestrować aplikację, która ma korzystać z jego usługi. odciski cyfrowe MD5, SHA-1 i SHA-256; certyfikatów przesyłania i podpisywania aplikacji znajdziesz na stronie podpisywania aplikacji w Konsoli Play. Inne odciski można wygenerować, pobierając pierwotny certyfikat (.der) z tej samej strony.

Podpisz kompilację do debugowania

Jeśli uruchamiasz lub debugujesz projekt z IDE, Android Studio automatycznie podpisuje aplikację certyfikatem debugowania wygenerowanym przez Androida Narzędzia SDK. Przy pierwszym uruchomieniu lub debugowaniu projektu w Android Studio narzędzie IDE automatycznie tworzy magazyn kluczy debugowania i certyfikat w $HOME/.android/debug.keystore oraz ustawia magazyn kluczy i hasła do kluczy.

Certyfikat debugowania jest tworzony przez narzędzia kompilacji i nie jest zabezpieczony przez większość sklepów z aplikacjami (w tym Sklep Google Play) nie akceptuje aplikacji. podpisany certyfikatem debugowania na potrzeby publikacji.

Android Studio automatycznie zapisuje dane logowania debugowania w tagu podpisywania więc nie musisz go wpisywać przy każdym debugowaniu. A to obiekt zawierający wszystkie informacje niezbędne do podpisać aplikację, w tym lokalizację magazynu kluczy, hasło do magazynu, nazwę klucza i hasła do klucza.

Więcej informacji na temat tworzenia i uruchamiania aplikacji do debugowania zawiera sekcja Tworzenie i uruchamianie aplikacji na potrzeby debugowania. i Uruchom aplikację.

Ważność certyfikatu debugowania wygasa

Samodzielnie podpisany certyfikat używany do podpisywania aplikacji na potrzeby debugowania zawiera która wygasa po 30 latach od daty utworzenia. Gdy certyfikat wygasa, pojawia się błąd kompilacji.

Aby rozwiązać ten problem, usuń plik debug.keystore zapisany w jednej z w tych lokalizacjach:

  • ~/.android/ w systemach OS X i Linux
  • C:\Documents and Settings\user\.android\ włączona System Windows XP
  • C:\Users\user\.android\ w systemie Windows Vista oraz Windows 7, 8 i 10

Następnym razem, gdy skompilujesz i uruchomisz wersję aplikacji do debugowania, Android Studio ponownie generuje nowy magazyn kluczy i klucz debugowania.

Podpisywanie aplikacji w celu udostępnienia jej w Google Play

Gdy aplikacja będzie gotowa do opublikowania, musisz ją podpisać i przesłać do sklepu z aplikacjami, takiego jak Google Play. Gdy publikujesz aplikację w Google Play musisz też skonfigurować podpisywanie aplikacji przez Google Play. Podpisywanie aplikacji przez Google Play jest opcjonalny w przypadku aplikacji utworzonych przed sierpniem 2021 r. Z tej sekcji dowiesz się, jak prawidłowo podpisać aplikację do opublikowania i skonfigurować podpisywanie aplikacji przez Google Play.

Generowanie klucza przesyłania i magazynu kluczy

Jeśli nie masz jeszcze klucza przesyłania, który przydaje się podczas konfigurowania Google Play Podpisywanie aplikacji możesz wygenerować w Android Studio w ten sposób:

  1. Na pasku menu kliknij Kompilacja > Wygeneruj podpisany pakiet/plik APK.
  2. W oknie Wygeneruj podpisany pakiet lub plik APK wybierz Android App Bundle lub APK i kliknij Dalej.
  3. Pod polem Ścieżka do magazynu kluczy kliknij Utwórz nową.
  4. W oknie New Key Store (Nowy magazyn kluczy) podaj te informacje o swojej tak jak na ilustracji 2.

    Rysunek 2. Utwórz nowy klucz przesyłania i magazyn kluczy w Android Studio.

  5. Magazyn kluczy

    • Ścieżka magazynu kluczy: wybierz lokalizację, w której chcesz utworzyć magazyn kluczy. Na końcu ścieżki lokalizacji umieść też nazwę pliku rozszerzenie .jks.
    • Hasło: utwórz i potwierdź bezpieczne hasło do magazynu kluczy.
  6. Klucz

    • Alias: wpisz nazwę identyfikującą klucz.
    • Hasło: utwórz i potwierdź bezpieczne hasło do klucza. Ten powinno być takie samo jak hasło do magazynu kluczy. Zapoznaj się ze znanym problemem ).
    • Ważność (lata): ustaw czas w latach, przez jaki klucz będzie istniał. być prawidłowe. Twój klucz powinien być ważny przez co najmniej 25 lat, aby można było go podpisać aktualizacje aplikacji przy użyciu tego samego klucza przez cały okres użytkowania.
    • Certyfikat: wpisz informacje o sobie, które będą potrzebne certyfikat. Te informacje nie są wyświetlane w aplikacji, ale są uwzględniane w certyfikacie jako część pliku APK.
  7. Po wypełnieniu formularza kliknij OK.

  8. Jeśli chcesz utworzyć i podpisać aplikację przy użyciu klucza przesyłania, przejdź dalej do sekcji o tym, Podpisywanie aplikacji swoim kluczem przesyłania. Jeśli chcesz to zrobić tylko aby wygenerować klucz i magazyn kluczy, kliknij Anuluj.

Podpisywanie aplikacji kluczem

Jeśli masz już klucz przesyłania, użyj go do podpisania aplikacji. Jeśli zamiast tego Twoja aplikacja jest już podpisane i opublikowane w Sklepie Google Play za pomocą istniejącej aplikacji. klucz podpisywania, użyj go do podpisania aplikacji. Później można wygenerować i zarejestrować oddzielnym kluczem przesyłania za pomocą Google Play, kolejnych aktualizacji aplikacji.

Aby podpisać aplikację za pomocą Android Studio, wykonaj te czynności:

  1. Jeśli nie widzisz okna Wygeneruj podpisany pakiet lub plik APK kliknij Kompilacja > Wygeneruj podpisany pakiet/plik APK.
  2. W oknie Wygeneruj podpisany pakiet lub plik APK wybierz aplikację na Androida Bundle lub APK i kliknij Dalej.
  3. Wybierz moduł z menu.
  4. Podaj ścieżkę do swojego magazynu kluczy i alias swojego klucza, a następnie wpisz do obu z nich. Jeśli magazyn kluczy przesyłania nie został jeszcze przygotowany i klucz, najpierw Wygeneruj klucz przesyłania i magazyn kluczy, a potem wróć, aby wykonać ten krok.

    Rysunek 3. Podpisz aplikację swoim kluczem przesyłania.

  5. Kliknij Dalej.

  6. W następnym oknie (widocznym na ilustracji 4) wybierz folder docelowy dla podpisaną aplikację, wybierz typ kompilacji, a w razie potrzeby wskaż rodzaj usługi.

  7. Jeśli tworzysz i podpisujesz plik APK, musisz wybrać opcję Podpis Wersje, które ma obsługiwać aplikacja. Więcej informacji: schematy podpisywania aplikacji

  8. Kliknij Utwórz.

Rysunek 5. Kliknij link w wyskakującym okienku, aby przeanalizować lub znaleźć aplikację w pakiecie.

Gdy Android Studio zakończy tworzenie podpisanej aplikacji, możesz: zlokalizuj lub przeanalizuj swoją aplikację, klikając odpowiednią opcję w jak widać na rysunku 5, w wyskakującym okienku.

Teraz możesz włączyć podpisywanie aplikacji przez Google Play i przesyłać je aplikację do opublikowania. Jeśli proces publikowania aplikacji to dla Ciebie nowość, warto aby zapoznać się z omówieniem wprowadzenia. W przeciwnym razie przejdź na stronę z informacjami o przesyłaniu aplikacji do Google Play Konsola.

Korzystanie z podpisywania aplikacji przez Google Play

Jak opisano wcześniej na tej stronie, skonfigurowanie Podpisywanie aplikacji przez Google Play jest wymagane, aby: podpisywania aplikacji na potrzeby dystrybucji w Google Play (z wyjątkiem aplikacji, utworzone przed sierpniem 2021 r., które mogą nadal dystrybuować samodzielnie podpisane pliki APK). Czynności, które musisz wykonać, zależą od tego, czy aplikacja nie została jeszcze aplikacja została opublikowana w Google Play lub została już podpisana i opublikowana przed Sierpień 2021 r. przy użyciu dotychczasowego klucza podpisywania aplikacji.

Skonfiguruj nową aplikację

Aby skonfigurować podpisywanie w przypadku aplikacji, która nie została jeszcze opublikowana w Google Play: wykonaj następujące czynności:

  1. Jeśli jeszcze nie zostało to zrobione, wygeneruj klucz przesyłaniaa podpisać aplikację tym kluczem przesyłania.
  2. Zaloguj się w Konsoli Play.
  3. Postępuj zgodnie z instrukcjami, aby przygotować opublikować wersję, , aby utworzyć nową wersję.
  4. Po wybraniu ścieżki wersji skonfiguruj podpisywanie aplikacji w sekcji Aplikacja podpisywanie w ten sposób:
    • aby umożliwić Google Play wygenerowanie klucza podpisywania aplikacji i używanie go do podpisywania aplikacji Twojej aplikacji, nie musisz nic robić. Klucz używany do podpisania pierwszego wersji staje się Twoim kluczem przesyłania i należy go używać do podpisywania w przyszłości wersji.
    • Aby użyć tego samego klucza co w przypadku innej aplikacji na koncie dewelopera, wybierz Zmień klucz podpisywania aplikacji > Użyj tego samego klucza co w innej aplikacji w tym konto, wybierz aplikację i kliknij Dalej.
    • Aby udostępnić własny klucz podpisywania, którego Google będzie używać do podpisywania aplikacji, wybierz Zmień klucz podpisywania aplikacji i wybierz jedną z opcji Eksportuj przesyłania, które umożliwiają bezpieczne przesyłanie klucza prywatnego i jego publicznego certyfikat.
.

W sekcji Pakiety aplikacji kliknij Przeglądaj. , by zlokalizować i przesłać aplikację podpisaną przy użyciu klucza przesyłania. Więcej informacji na temat publikowania aplikacji znajdziesz w przygotować wdrożyć wersję. Gdy opublikujesz aplikację po skonfigurowaniu podpisywania aplikacji przez Google Play, Google Play generuje (chyba że prześlesz istniejący klucz) i zarządza klucz podpisywania. Wystarczy, że podpiszesz kolejne aktualizacje aplikacji za pomocą Prześlij klucz przesyłania, zanim prześlesz go do Google Play.

Jeśli chcesz utworzyć nowy klucz przesyłania dla swojej aplikacji, przejdź do sekcji z informacjami o tym, do zresetowania prywatnego klucza przesyłania, który został utracony lub dostał się w niepowołane ręce.

Wyraź zgodę na istniejącą aplikację

Jeśli aktualizujesz aplikację, która została już opublikowana w Google Play, używając dotychczasowego klucza podpisywania aplikacji, możesz włączyć podpisywanie aplikacji przez Google Play jako następujące:

  1. Zaloguj się w Konsoli Play i przejdź do aplikacji.
  2. W menu po lewej stronie kliknij Wersja > Konfiguracja > Podpisywanie aplikacji.
  3. W razie potrzeby przeczytaj Warunki usługi i kliknij Zgadzam się.
  4. Wybierz jedną z opcji najlepiej opisującą klucz podpisywania, który chcesz stosować prześlij ją do Google Play i postępuj zgodnie z wyświetlanymi instrukcjami. Dla: Jeśli na przykład jako klucza podpisywania używasz magazynu kluczy Java, wybierz Prześlij nowy klucz podpisywania aplikacji z Java Keystore i postępuj zgodnie z instrukcjami instrukcje pobierania i uruchamiania narzędzia PEPK oraz przesyłania wygenerowanego pliku zaszyfrowanym kluczem.
  5. Kliknij Zarejestruj się.

Powinna wyświetlić się strona ze szczegółami dotyczącymi podpisywania i przesyłania aplikacji. certyfikatów. Google Play podpisuje aplikację obecnym kluczem, gdy: i wdrażać je na kontach użytkowników. Jedną z najważniejszych zalet aplikacji z Google Play jest Podpisywanie to możliwość rozdzielenia klucza używanego do podpisywania artefaktu przesłanego do Google Play z klucza używanego przez Google Play do podpisywania aplikacji, udostępniać ją użytkownikom. Warto więc wykonać kroki opisane w kolejnym kroku, aby wygenerować i zarejestrować oddzielny klucz przesyłania.

Generowanie i rejestrowanie certyfikatu przesyłania

Gdy publikujesz aplikację, która nie jest podpisana kluczem przesyłania, W Konsoli Play możesz zarejestrować konto, aby korzystać z przyszłych aktualizacji aplikacji. Chociaż jest to opcjonalny krok, zalecamy opublikowanie aplikacji za pomocą innego klucza niż ten, którego Google Play używa do rozpowszechniania aplikacji użytkownikom. Dzięki temu Google chroni Twój klucz podpisywania, a Ty masz gwarancję, możesz zresetować prywatny klucz przesyłania, który został utracony lub przejęty. Z tej sekcji dowiesz się, jak utworzyć klucz przesyłania i wygenerować przesyłanie i zarejestrować go w Google Play w przyszłości. aktualizacje aplikacji.

Poniżej opisano możliwe sytuacje, w których dostępna jest opcja rejestracji certyfikat przesyłania w Konsoli Play:

  • Gdy opublikujesz nową aplikację podpisaną kluczem podpisywania i zarejestrujesz ją w Podpisywanie aplikacji przez Google Play.
  • Gdy chcesz opublikować istniejącą aplikację, która jest już uwzględniona w Google Play. podpisywanie aplikacji, ale jest podpisywane przy użyciu swojego klucza;

Jeśli nie publikujesz aktualizacji istniejącej aplikacji, która jest już włączona do podpisywania aplikacji przez Google Play i chcesz zarejestrować certyfikat przesyłania, wykonaj poniższe czynności i przejdź do sekcji zresetować utracony lub przejęty prywatny klucz przesyłania.

Jeśli nie zostało to jeszcze zrobione, wygeneruj klucz przesyłania i magazyn kluczy.

Po utworzeniu klucza przesyłania i magazynu kluczy musisz wygenerować publiczny plik certyfikatu z klucza przesyłania za pomocą keytool za pomocą tego polecenia:

$ keytool -export -rfc
  -keystore your-upload-keystore.jks
  -alias upload-alias
  -file output_upload_certificate.pem

Masz już certyfikat przesyłania. Gdy pojawi się odpowiedni komunikat, zarejestruj go w Google w Konsoli Play lub podczas resetowania klucza przesyłania.

Uaktualnianie klucza podpisywania aplikacji

W niektórych przypadkach może być konieczna zmiana klucza podpisywania aplikacji. Dla: aby uzyskać klucz o silniejszym szyfrowaniu lub klucz podpisywania została przejęta. Użytkownicy mogą jednak zaktualizować aplikację tylko wtedy, gdy aktualizacja jest podpisana tym samym kluczem podpisywania, trudno jest zmienić dla już opublikowanej aplikacji.

Jeśli opublikujesz aplikację w Google Play, możesz uaktualnić klucz podpisywania dla swojego opublikowana aplikacja przy użyciu Konsoli Play – Twój nowy klucz będzie używany do podpisywania instalacji i aktualizacji aplikacji na Androidzie 13 i nowszych, a starszy klucz podpisywania aplikacji to służy do podpisywania aktualizacji u użytkowników wcześniejszych wersji Androida.

Więcej informacji: Uaktualnij klucz podpisywania aplikacji.

Resetowanie prywatnego klucza przesyłania, który został utracony lub przejęty

Jeśli utracisz dostęp do swojego prywatnego klucza przesyłania lub dostanie się on w niepowołane ręce, możesz utworzyć nowe poprosić o zresetowanie klucza przesyłania w Konsoli Play.

Skonfiguruj proces kompilacji, aby automatycznie podpisywać aplikację

W Android Studio możesz skonfigurować projekt pod kątem podpisywania wersji wersji możesz automatycznie dodać aplikację w procesie kompilacji, tworząc podpisywanie i przypisać ją do typu kompilacji wersji. A konfiguracji składa się z lokalizacji magazynu kluczy, hasła do tego magazynu, aliasu klucza i hasła do klucza. Aby utworzyć konfigurację podpisywania i przypisać ją do wersji w Android Studio, wykonaj te czynności:

  1. W oknie Projekt kliknij swoją aplikację prawym przyciskiem myszy i wybierz Otwórz ustawienia modułu.
  2. W oknie Struktura projektu w kolumnie W panelu po lewej stronie kliknij wybrany moduł. podpisać.
  3. Kliknij kartę Podpisanie, a następnie kliknij Dodaj.
  4. Wybierz plik magazynu kluczy i wpisz nazwę tej konfiguracji podpisywania (możesz utworzyć ich więcej) i wpisz wymagane informacje.

    Rysunek 7. Okno tworzenia nowego podpisu konfiguracji.

  5. Kliknij kartę Typy kompilacji.
  6. Kliknij kompilację release (wersja).
  7. W sekcji Konfiguracja podpisywania wybierz konfigurację podpisywania. który właśnie utworzył.

    Rysunek 8. Wybieranie konfiguracji podpisywania na Androidzie Studio.

  8. Kliknij OK.

Teraz przy każdym tworzeniu typu kompilacji wersji, wybierając opcję w Kompilacja > Pakiety / pliki APK w Android Studio, IDE automatycznie podpisze Twoją aplikację przy użyciu wybranej przez Ciebie konfiguracji podpisywania określone dane. Podpisany plik APK lub pakiet aplikacji znajdziesz w build/outputs/ w katalogu projektu dla który tworzysz.

Gdy tworzysz konfigurację podpisywania, uwzględniane są Twoje informacje o podpisywaniu. zwykłego tekstu w plikach kompilacji Gradle. Jeśli pracujesz w zespole lub podczas publicznego udostępniania kodu, dbaj o bezpieczeństwo swoich danych, usuwając ją z plików kompilacji i przechowując oddzielnie. Możesz przeczytać Dowiedz się więcej o usuwaniu danych logowania z plików kompilacji w Usuwanie danych podpisu z konstrukcji Pliki. Więcej informacji o zabezpieczaniu danych podpisywania znajdziesz tutaj: Zabezpiecz swój klucz (poniżej).

Podpisz każdy smak w inny sposób

Jeśli Twoja aplikacja używa smaków produktu i chcesz podpisać każdą z nich możesz utworzyć dodatkowe konfiguracje podpisywania i przypisać je według smaku:

  1. W oknie Projekt kliknij swoją aplikację prawym przyciskiem myszy i wybierz Otwórz ustawienia modułu.
  2. W oknie Struktura projektu w kolumnie W panelu po lewej stronie kliknij wybrany moduł. podpisać.
  3. Kliknij kartę Podpisanie, a następnie kliknij Dodaj.
  4. Wybierz plik magazynu kluczy i wpisz nazwę tej konfiguracji podpisywania (możesz utworzyć ich więcej) i wpisz wymagane informacje.

    Rysunek 10. Okno tworzenia nowego podpisu konfiguracji.

  5. W razie potrzeby powtarzaj kroki 3 i 4, aż utworzysz wszystkie konfiguracji.
  6. Kliknij kartę Smary.
  7. Kliknij rodzaj, który chcesz skonfigurować, i wybierz odpowiedni konfigurację podpisywania w menu Signing Config (Konfiguracja podpisywania).

    Rysunek 11. Skonfiguruj ustawienia podpisywania według rodzaju usługi.

    Powtórz te czynności, aby skonfigurować dodatkowe smaki produktów.

  8. Kliknij OK.

Ustawienia podpisywania możesz też określić w plikach konfiguracji Gradle. Dla: Więcej informacji znajdziesz w artykule Konfigurowanie ustawień podpisywania.

Wygeneruj raport podpisywania

Aby uzyskać informacje o podpisywaniu poszczególnych wariantów aplikacji, uruchom Gradle Zadanie signingReport w Android Studio:

  1. Wybierz Widok > Okna narzędziowe > Gradle, aby otworzyć okno narzędzia Gradle.
  2. Wybierz kolejno TwojaAplikacja > Lista zadań > android > signedReport, aby wygenerować raport.
.

Zarządzanie własnym kluczem podpisywania

Jeśli nie włączysz podpisywania aplikacji przez Google Play (tylko w przypadku aplikacji utworzonych przed sierpniem 2021 r.), możesz samodzielnie zarządzać kluczem podpisywania aplikacji i magazynem kluczy. Pamiętaj, że to odpowiadasz za zabezpieczenie klucza i magazynu kluczy. Aplikacja nie będzie też obsługiwać pakietów Android App Bundle, Play Feature Delivery i Play Asset Delivery.

Zanim utworzysz własny magazyn kluczy i magazyn kluczy, wybierz silne hasło do magazynu kluczy i osobne silne hasło dla z każdego klucza prywatnego przechowywanego w magazynie kluczy. Magazyn kluczy musisz przechowywać w bezpiecznym miejscu. i bezpieczne miejsce. Jeśli utracisz dostęp do klucza podpisywania aplikacji lub Twój klucz jest przejętego, Google nie może pobrać klucza podpisywania aplikacji, więc nie możesz udostępniać użytkownikom nowych wersji aplikacji jako aktualizacji oryginalnej aplikacji. Więcej informacji: Zabezpiecz swój klucz (poniżej).

Jeśli samodzielnie zarządzasz kluczem podpisywania aplikacji i magazynem kluczy, podczas podpisywania pliku APK podpisze ją lokalnie Twoim kluczem podpisywania aplikacji i prześle podpisany plik APK bezpośrednio do Sklepu Google Play w celu dystrybucji, jak pokazano na rysunku 12.

Rysunek 12. Podpisywanie aplikacji, gdy zarządzasz własnym kluczem podpisywania aplikacji

Jeśli używasz podpisywanie aplikacji przez Google Play, Google chroni Twój klucz podpisywania i dba o to, aby Twoje aplikacje prawidłowo podpisane i otrzymywać aktualizacje w całym cyklu życia. Jeśli jednak zdecydujesz się samodzielnie zarządzać kluczem podpisywania aplikacji, musisz zastosować kilka o których warto pamiętać.

Uwagi na temat podpisywania

Podpisuj aplikację tym samym certyfikatem w całym oczekiwanym środowisku oraz długość życia. Oto kilka powodów, dla których warto to zrobić:

  • Aktualizacja aplikacji: podczas instalowania aktualizacji aplikacji system porównuje certyfikaty w nowej wersji z certyfikatami w dotychczasowym wersji. System zezwala na aktualizację, jeśli certyfikaty są zgodne. Jeśli podpiszesz nowej wersji z innym certyfikatem, musisz przypisać inny pakiet nazwy aplikacji – w tym przypadku użytkownik zainstaluje nową wersję jako nową aplikację.
  • Moduł aplikacji: Android zezwala na uruchamianie plików APK podpisanych tym samym certyfikatem. w ramach tego samego procesu, jeśli aplikacje o to poprosi, dzięki czemu system będzie traktować je jako dla jednej aplikacji. Dzięki temu możesz wdrożyć aplikację w modułach, a użytkownicy będą mogli aktualizować z osobna.
  • Udostępnianie kodu/danych za pomocą uprawnień: Android udostępnia funkcje oparte na podpisach. wymuszanie uprawnień, tak aby aplikacja mogła udostępniać funkcje innej aplikacji który jest podpisany określonym certyfikatem. Przez podpisanie wielu plików APK za pomocą tego samego certyfikatu i sprawdzania uprawnień opartych na podpisach, aplikacje mogą udostępniać kod i dane w bezpieczny sposób.

Jeśli chcesz obsługiwać uaktualnienia aplikacji, upewnij się, że klucz podpisywania aplikacji ma okres ważności, który przekracza przewidywany czas życia danej aplikacji. Ważność okres 25 lat lub dłuższy. Kiedy okres ważności klucza wygasa, użytkownicy nie będą mogli bezproblemowo przejść na nowe wersje do aplikacji.

Jeśli planujesz publikować aplikacje w Google Play, klucz używany do podpisywania aplikacja musi mieć okres ważności kończący się po 22 października 2033 r. Google Play, egzekwuje to wymaganie, aby użytkownicy mogli bezproblemowo uaktualniać aplikacje, dostępne są nowe wersje.

Zabezpieczanie klucza

Jeśli zdecydujesz się samodzielnie zarządzać kluczem podpisywania aplikacji i magazynem kluczy oraz je zabezpieczać (zamiast włączać podpisywania aplikacji przez Google Play), zabezpieczając aplikację. klucz podpisywania ma kluczowe zarówno dla Ciebie, jak i dla użytkownika. Jeśli zezwolisz komuś na korzystanie z klucza, lub gdy pozostawisz magazyn kluczy i hasła w niezabezpieczonym miejscu, osób trzecich może je znaleźć i wykorzystać, Twoją tożsamość autora oraz zaufanie dostęp do danych użytkownika.

jeśli inna firma powinna przejąć klucz podpisywania aplikacji bez Twojej wiedzy lub dana osoba może podpisywać i rozpowszechniać aplikacje, które złośliwie zastępują autentycznych aplikacji lub uszkodzonych. Taka osoba może również złożyć podpis rozpowszechniać pod Twoją tożsamością aplikacje atakujące inne aplikacje lub sam system, lub uszkodzone lub wykraść dane użytkowników.

Klucz prywatny będzie potrzebny do podpisywania wszystkich przyszłych wersji aplikacji. Jeśli zgubisz lub zgubisz klucz, nie będziesz mieć możliwości publikowania aktualizacji istniejącej aplikacji. Nie możesz ponownie wygenerować wcześniej wygenerowanego klucza.

Reputacja dewelopera zależy od zabezpieczeń podpisywanych aplikacji przez cały czas, aż klucz nie wygaśnie. Oto kilka wskazówek, jak zabezpieczeniu klucza:

  • Wybierz silne hasła do magazynu i klucza.
  • Nie przekazuj nikomu swojego klucza prywatnego ani nie zezwalaj nieautoryzowanym osoby znają Twój magazyn kluczy i hasła do kluczy.
  • Przechowuj plik magazynu kluczy zawierający klucz prywatny w bezpiecznym miejscu.

Ogólnie rzecz biorąc, jeśli przestrzegasz rozsądnych środków ostrożności podczas generowania, używania i jest wciąż bezpieczny.

Usuwanie danych podpisywania z plików kompilacji

Gdy tworzysz konfigurację podpisywania, Android Studio dodaje te ustawienia w postaci zwykłego tekstu do plików build.gradle modułu. Jeśli jeśli pracujesz z zespołem lub na licencji open source, przenieś ten kod informacje poufne z plików kompilacji, aby nie były łatwo dostępne innym użytkownikom. W tym celu należy utworzyć oddzielny plik właściwości do przechowywania i odnoś się do tego pliku w plikach kompilacji w ten sposób:

  1. Utwórz konfigurację podpisywania i przypisz ją do co najmniej 1 typu kompilacji. W tych instrukcjach przyjęto, że masz skonfigurowaną pojedynczą konfigurację podpisywania dla danego typu kompilacji wersji, jak opisano w sekcji Konfigurowanie. do automatycznego podpisywania aplikacji powyżej.
  2. Utwórz w katalogu głównym plik o nazwie keystore.properties w katalogu projektu. Ten plik powinien zawierać informacje na temat Twojego podpisu, w następujący sposób:
    storePassword=myStorePassword
    keyPassword=mykeyPassword
    keyAlias=myKeyAlias
    storeFile=myStoreFileLocation
    
  3. W pliku build.gradle modułu dodaj kod, który wczytuje keystore.properties plik przed android {} blokować.

    Odlotowe

    ...
    
    // Create a variable called keystorePropertiesFile, and initialize it to your
    // keystore.properties file, in the rootProject folder.
    def keystorePropertiesFile = rootProject.file("keystore.properties")
    
    // Initialize a new Properties() object called keystoreProperties.
    def keystoreProperties = new Properties()
    
    // Load your keystore.properties file into the keystoreProperties object.
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
    
    android {
        ...
    }
    

    Kotlin

    ...
    import java.util.Properties
    import java.io.FileInputStream
    
    // Create a variable called keystorePropertiesFile, and initialize it to your
    // keystore.properties file, in the rootProject folder.
    val keystorePropertiesFile = rootProject.file("keystore.properties")
    
    // Initialize a new Properties() object called keystoreProperties.
    val keystoreProperties = Properties()
    
    // Load your keystore.properties file into the keystoreProperties object.
    keystoreProperties.load(FileInputStream(keystorePropertiesFile))
    
    android {
        ...
    }
    

    Uwaga: możesz przechowywać keystore.properties w innej lokalizacji (na przykład w folderze modułu zamiast w folderze głównym projektu lub w na serwerze kompilacji, jeśli używasz narzędzia do ciągłej integracji). W w takim przypadku należy zmodyfikować powyższy kod, aby prawidłowo zainicjować keystorePropertiesFile na podstawie Twojego rzeczywistego Lokalizacja pliku keystore.properties.

  4. Możesz odwoływać się do właściwości przechowywanych w keystoreProperties przy użyciu składni keystoreProperties['propertyName']. Zmień blok signingConfigs swojego modułu build.gradle pliku, aby odwołać się do informacji podpisu przechowywanych w keystoreProperties przy użyciu tej składni.

    Odlotowe

    android {
        signingConfigs {
            config {
                keyAlias keystoreProperties['keyAlias']
                keyPassword keystoreProperties['keyPassword']
                storeFile file(keystoreProperties['storeFile'])
                storePassword keystoreProperties['storePassword']
            }
        }
        ...
      }

    Kotlin

    android {
        signingConfigs {
            create("config") {
                keyAlias = keystoreProperties["keyAlias"] as String
                keyPassword = keystoreProperties["keyPassword"] as String
                storeFile = file(keystoreProperties["storeFile"] as String)
                storePassword = keystoreProperties["storePassword"] as String
            }
        }
        ...
      }
  5. Otwórz okno narzędzia Tworzenie wariantów i sprawdź, czy wartości wybrano typ kompilacji wersji.
  6. Wybierz opcję w sekcji Kompilacja > Utwórz pakiety / pliki APK do kompilacji może to być plik APK lub pakiet aplikacji danej kompilacji. Dane wyjściowe kompilacji powinny być widoczne w build/outputs/ katalogu Twojego modułu.

Twoje pliki kompilacji nie zawierają już informacji poufnych, uwzględnić je w kontroli źródła lub przesłać do udostępnionej bazy kodu. Upewnij się, aby zapewnić bezpieczeństwo pliku keystore.properties. Może to obejmować i usunięcie go z systemu kontroli źródła.