Wybierz przynajmniej jedną z wersji podpisu do użycia w Android Studio 2.3
Teraz podczas generowania podpisanego pliku APK w Android Studio pokazuje dwie opcje (CheckBox), a mianowicie 1. V1 (Jar Signature)
i 2. V2 (Full APK Signature)
jako Wersje podpisu w ostatnim kroku procesu generowania podpisanego pliku APK.
Jaka jest różnica między wersją V1 (sygnatura jar) a wersją V2 (sygnatura pełnego APK) w nowej aktualizacji Android Studio?
I którego powinienem użyć (lub obu) do podpisania APK do wydania w sklepie Play?
Dostaję też błąd Instalacja nie powiodła się Brak certyfikatów podczas instalowania APK, gdy korzystam z drugiej opcji.
Czy powinienem używać (lub obu) do podpisywania APK do wydania w sklepie Play? Odpowiedź brzmi TAK .
Zgodnie z https://source.android.com/security/apksigning/v2.html#verification :
Próbowałem wygenerować kompilację z zaznaczeniem opcji V2 (Full Apk Signature) . Następnie, gdy próbowałem zainstalować kompilację wersji na urządzeniu poniżej 7.0 i nie mogę zainstalować kompilacji na urządzeniu.
Następnie próbowałem kompilować, zaznaczając pole wyboru obu wersji i generując kompilację wersji. Następnie można zainstalować kompilację.
źródło
Jest tu napisane , że „Domyślnie Android Studio 2.2 i wtyczka Android dla Gradle 2.2 podpisują twoją aplikację przy użyciu zarówno schematu podpisu APK v2, jak i tradycyjnego schematu podpisywania, który wykorzystuje podpisywanie JAR”.
Ponieważ wydaje się, że te nowe pola wyboru pojawiły się w Androidzie 2.3, rozumiem, że moje poprzednie wersje Android Studio (przynajmniej 2.2) podpisywały się za pomocą obu podpisów. Tak więc, aby kontynuować tak jak poprzednio, myślę, że lepiej zaznaczyć oba pola wyboru.
EDYCJA 31 marca 2017 r .: przesłano kilka aplikacji z oboma podpisami => bez problemu :)
źródło
Myślę, że to dobra odpowiedź.
Weryfikacja APK Signature Scheme v2
APK Signing Block
i sprawdź, czy:APK Signing Block
zawierają tę samą wartość.ZIP Central Directory
natychmiast następujeZIP End of Central Directory
zapis.ZIP End of Central Directory
nie następuje po nim więcej danych.APK Signature Scheme v2 Block
wewnątrzAPK Signing Block
. Jeśli blok v2, jeśli jest obecny, przejdź do kroku 3. W przeciwnym razie wróć do weryfikacji APK przy użyciu schematu v1.APK Signature Scheme v2 Block
:SubjectPublicKeyInfo
czy pierwszy certyfikat certyfikatów jest identyczny z kluczem publicznym.Uwaga: APK nie może być zweryfikowany przy użyciu schematu v1, jeśli awaria wystąpi w kroku 3 lub 4.
Podpisana przez JAR weryfikacja APK (schemat v1)
APK ze znakiem JAR jest standardowym plikiem JAR ze znakiem, który musi zawierać dokładnie wpisy wymienione na liście
META-INF/MANIFEST.MF
i gdzie wszystkie wpisy muszą być podpisane przez ten sam zestaw sygnatariuszy. Jego integralność jest weryfikowana w następujący sposób:META-INF/<signer>.SF
iMETA-INF/<signer>.(RSA|DSA|EC)
JAR.<signer>.(RSA|DSA|EC)
jestPKCS #7 CMS ContentInfo
strukturą SignedData, której podpis jest weryfikowany w<signer>.SF
pliku.<signer>.SF
plik zawiera podsumowanie całego pliku i podsumowaniaMETA-INF/MANIFEST.MF
każdej sekcjiMETA-INF/MANIFEST.MF
. Skrót całego plikuMANIFEST.MF
jest weryfikowany. Jeśli to się nie powiedzie,MANIFEST.MF
zamiast tego weryfikowany jest skrót każdej sekcji.META-INF/MANIFEST.MF
zawiera, dla każdej chronionej integralności pozycji JAR, odpowiednio nazwaną sekcję zawierającą podsumowanie nieskompresowanej zawartości pozycji. Wszystkie te skróty są weryfikowane.MANIFEST.MF
sygnaturze JAR i nie stanowią jej części. Łańcuch ochrony to zatem<signer>.(RSA|DSA|EC)
→<signer>.SF
→MANIFEST.MF
→ zawartość każdego wpisu JAR chronionego integralnością.źródło
Według tego linku: pomoc dotycząca podpisu
Program APK Signature Scheme v2 oferuje:
Jest zalecane , aby użyć APK Signature Scheme v2 ale nie obowiązkowe .
źródło