Podpisywanie kodu dla systemu Android

W tym artykule dowiesz się, jak zakodować znak dla systemu Android (APK). Aplikację dla systemu Android należy podpisać, jeśli wybrano system Android jako jedną z platform podczas tworzenia i budowania projektu opakowania.

Ważne

Jeśli chcesz zamiast tego zarejestrować aplikację AAB w usłudze Google Play, zobacz Zarejestruj swoją aplikację.

Przygotuj komputer

Do rozpoczęcia pracy potrzebne są następujące informacje:

Generowanie kluczy

Uwaga

Pomiń , aby zarejestrować pakiet TED, jeśli podczas tworzenia rejestracji aplikacji wygenerowano już klucze i skrót podpisu.

Do utworzenia certyfikatu służącego do instalowania pakietu aplikacji użyjemy pliku keytool.exe (Android Studio dostępnego po zainstalowaniu z lokalizacji folderu "Dysk:\Program Files\Android\Android Studio\jre\bin\keytool.exe"). Keytool służy do zarządzania magazynem kluczy (bazą danych) kluczy kryptograficznych, łańcuchów certyfikatów X.509 i zaufanych certyfikatów.

Aby wygenerować klucz, należy otworzyć wiersz polecenia i uruchomić następujące polecenie:

keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000

Parametry:

  • genkey - aby wygenerować klucz.
  • alias — wskazuje alias, który będzie używany w przyszłości w celu odwoływania się do wpisu magazynu kluczy zawierającego generowane klucze.
  • keyalg — nazwa kluczowego algorytmu.
  • keystore — nazwa używanego magazynu kluczy.
  • keysize — rozmiar każdego klucza, który ma zostać wygenerowany.
  • validity — ważność klucza wyrażona w liczbie dni.

Przykład:

  • Przy przygotowywaniu magazynu kluczy PATH_TO_KEYSTORE musi mieć rozszerzenie .pfx.

    keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000

  • Jeśli jest przygotowywana do ręcznego logowania, PATH_TO_KEYSTORE mieć rozszerzenie jinfo.

    keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000

Zrzut ekranu z poleceniem keytool z parametrami podanymi w powyższym przykładzie.

Generowanie skrótu podpisu

Uwaga

Pomiń , aby zarejestrować pakiet TED, jeśli podczas tworzenia rejestracji aplikacji wygenerowano już klucze i skrót podpisu.

Po wygenerowaniu klucza polecenie exportcert jest używane do eksportowania certyfikatu keytool.

keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64

Parametry:

  • exportcert — odczytuje z magazynu kluczy certyfikat powiązany z aliasem i zapisuje go w pliku cert_file. Jeśli nie zostanie podany żaden plik, certyfikat jest wypisywany na stdout.
  • alias — alias używany podczas generowania kluczy wcześniej.
  • keystore — nazwa używanego magazynu kluczy.
  • openssl — tworzy klucz SHA1 dla Android.

Dodaj wygenerowany skrót podpisu w URI przekierowania podczas rejestrowania aplikacji.

Ręczna konwersja szesnastkowej SHA1 na skrót podpisu zakodowany w Base64

Jeśli skrót podpisu nie jest poprawnie zakodowany lub nie jest akceptowany w witrynie Azure Portal, może być wyświetlany następujący błąd:

„Skrót podpisu musi być kodowany algorytmem base64 SHA1”.

Gdy pojawi się ten błąd, spróbuj wygenerować skrót podpisu, wykonując następujące kroki:

  1. Uruchom keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE, aby wyświetlić informacje o certyfikatach w trybie pełnej funkcjonalności.
  2. Skopiuj wartość SHA1 w sekcji Odciski palca certyfikatu z danych wyjściowych. Należy upewnić się, że jest kopiowana tylko wartość szesnastkowa.
    Na przykład: EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
  3. Użyj dowolnego dostępnego konwertera „szesnastkowego na Base64”, aby przekonwertować skopiowaną wartość szesnastkową odcisku palca certyfikatu na wartość zakodowaną w standardzie Base64.
    Przykład zakodowanej wartości Base64: 8CPPeLaz9etdqQyaQubcqsy2Tw=
  4. Skopiuj wygenerowaną wartość zakodowaną w Base64 jako skrót podpisu w Azure Portal podczas rejestrowania aplikacji.

Podpisz pakiet APK

Aby podpisać pakiet APK, użyjemy narzędzia apksigner. To narzędzie pozwala podpisywanie pakietów APK i zapewnia, że podpis pakietu APK jest sprawdzany pomyślnie na wszystkich platformach systemu Android obsługiwanych przez APK.

Znajdź swoje apksigner

  1. Sprawdź ścieżkę SDK systemu Android w programie Android Studio.

  2. Wybierz Narzędzie > Menedżer SDK > Android SDK Lokalizacja.

    W przypadku korzystania z systemu iOS należy sprawdzić plik przypisania w katalogu buildTools Version:

    Przejdź do katalogu SDK > narzędzia kompilacyjne > buildToolsVersion > lib i wybierz plik apksigner.jar

Użyj pliku apksigner

Wykonaj następujące polecenie, aby użyć apksigner i podpisać pakiet:

apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK

Parametry:

  • ks - ścieżka do magazynu kluczy.
  • ks-key-alias - klucz alias ścieżka do pliku APK.

Po wyświetleniu monitu wprowadź hasło.

Więcej informacji: narzędzia wiersza polecenia Android Studio: apksigner

Dystrybuowanie aplikacji

Pakiet można hostować w serwisie dystrybucyjnym, np. App Center. Aby dystrybuować przy użyciu usługi Microsoft Intune, zobacz temat Dodawanie aplikacji biznesowej Android do usługi Microsoft Intune. Aby dowiedzieć się, jak zapewnić aplikacji dostęp do usługi ochrony aplikacji Intune, zobacz Zapewnij swojej aplikacji dostęp do usługi ochrony aplikacji Intune.

Zobacz też