Veuillez sélectionner au moins une des versions de signature à utiliser dans Android Studio 2.3
Maintenant, tout en générant un apk signé dans Android Studio, il affiche deux options (CheckBox), à savoir 1. V1(Jar Signature)
et 2. `V2 (Signature complète de l'APK) 'en tant que Signature Versions à la dernière étape du processus de génération d’apk signé.
Alors, quelle est la différence entre ces V1 (Signature du récipient) et V2 (Signature complète de l'APK) dans la nouvelle Android Studio Update?
Et qui dois-je utiliser (ou les deux) pour signer un apk pour la sortie du Play Store?
En outre, je reçois une erreur . L'installation de l'analyse n'a pas échoué. Aucun certificat lors de l'installation d'apk lorsque j'utilise une deuxième option.
Il s'agit d'un nouveau mécanisme de signature introduit dans Android 7.0, avec des fonctionnalités supplémentaires conçues pour sécuriser davantage la signature APK.
Ce n'est pas obligatoire. Vous devriez cocher ces deux cases si possible, mais si le nouveau mécanisme de signature de la V2 vous pose problème, vous pouvez l'omettre.
Donc, vous pouvez simplement laisser la V2 décochée si vous rencontrez des problèmes, mais vous devriez la faire vérifier si possible.
Devrais-je utiliser (ou les deux) pour signer apk pour la sortie du Play Store? Une réponse est OUI.
Selon https://source.Android.com/security/apksigning/v2.html#verification :
Dans Android 7.0, les fichiers APK peuvent être vérifiés selon le schéma de signature APK v2 (schéma v2) ou la signature JAR (schéma v1). Les anciennes plates-formes ignorent les signatures v2 et ne vérifient que les signatures v1.
J'ai essayé de générer la construction avec la vérification V2 (Full Apk Signature) option. Ensuite, lorsque j'ai essayé d'installer une version de version inférieure 7.0 ci-dessous, je ne parviens pas à installer la version correspondante.
Après cela, j'ai essayé de construire en cochant les cases de version et de générer la version finale. Puis capable d'installer build.
Il est écrit ici que "Par défaut, Android Studio 2.2 et le Android Plugin pour Gradle 2.2 signent votre application à l'aide de l'AK Signature Scheme v2 et du logiciel traditionnel. schéma de signature, qui utilise la signature JAR. "
Comme il semble que ces nouvelles cases à cocher soient apparues avec Android 2.3, je comprends que mes versions précédentes de Android Studio (au moins la version 2.2) ont signé avec les deux signatures. Donc, pour continuer comme avant, je pense qu'il est préférable de cocher les deux cases.
EDIT le 31 mars 2017: a soumis plusieurs applications avec les deux signatures => aucun problème :)
Je pense que ceci représente une bonne réponse.
APK Signature Scheme v2 vérification
APK Signing Block
et vérifiez que: APK Signing Block
contiennent la même valeur.Zip Central Directory
est immédiatement suivi de l'enregistrement Zip End of Central Directory
.Zip End of Central Directory
n'est pas suivi de plus de données.APK Signature Scheme v2 Block
à l'intérieur du APK Signing Block
. Si le bloc v2 est présent, passez à l'étape 3. Sinon, revenez à la vérification de l'APK à l'aide du schéma v1.APK Signature Scheme v2 Block
: SubjectPublicKeyInfo
du premier certificat de certificats est identique à la clé publique.Remarque: L'APK ne doit pas être vérifié à l'aide du schéma v1 si une défaillance survient à l'étape 3 ou 4.
Vérification de l'APK avec signature par le JAR (schéma v1)
Le fichier APK signé par le fichier JAR est un fichier JAR signé standard, qui doit contenir exactement les entrées répertoriées dans META-INF/MANIFEST.MF
et où toutes les entrées doivent être signées par le même groupe de signataires. Son intégrité est vérifiée comme suit:
META-INF/<signer>.SF
et META-INF/<signer>.(RSA|DSA|EC)
.<signer>.(RSA|DSA|EC)
est un PKCS #7 CMS ContentInfo
avec une structure SignedData dont la signature est vérifiée sur le fichier <signer>.SF
.<signer>.SF
contient un résumé de fichier entier du META-INF/MANIFEST.MF
et des extraits de chaque section de META-INF/MANIFEST.MF
. Le résumé de fichier entier du MANIFEST.MF
est vérifié. Si cela échoue, le résumé de chaque section MANIFEST.MF
est vérifié à la place.META-INF/MANIFEST.MF
contient, pour chaque entrée JAR protégée, une section nommée en conséquence, contenant le résumé du contenu non compressé de l’entrée. Tous ces digests sont vérifiés.MANIFEST.MF
et ne font pas partie de la signature JAR. La chaîne de protection est donc <signer>.(RSA|DSA|EC)
→ <signer>.SF
→ MANIFEST.MF
→ contenu de chaque entrée JAR protégée.Selon ce lien: aide à la signature
APK Signature Scheme v2 offre:
Android 7.0 présente APK Signature Scheme v2, un nouveau schéma de signature d'application qui offre des temps d'installation plus courts et une protection accrue contre les modifications non autorisées des fichiers APK. Par défaut, Android Studio 2.2 et le plugin Android pour Gradle 2.2 signent votre application à l'aide du schéma de signature APK v2 et de la signature traditionnelle. schéma, qui utilise la signature JAR.
Il est recommandé d'utiliser le schéma de signature de l'APK v2 mais est non obligatoire .
Bien que nous vous recommandons d'appliquer APK Signature Scheme v2 à votre application, ce nouveau schéma n'est pas obligatoire. Si votre application ne se construit pas correctement lorsque vous utilisez APK Signature Scheme v2, vous pouvez désactiver le nouveau schéma.