72 votes

L'APK signé d'Android s'affiche comme APK non signé lorsqu'on essaie de le télécharger vers une production

J'ai signé mon APK dans Android Studio 2.3 (build->generate signed APK). Lorsque j'essaie de le télécharger sur le Google Play store, le message d'erreur suivant apparaît : "J'ai téléchargé un APK non signé". Quelqu'un peut-il me dire pourquoi cela se produit et comment le résoudre ?

0 votes

Pouvez-vous envoyer le message d'erreur ?

4 votes

Il a été téléchargé avec succès lorsque j'ai coché V1 (Jar Signature) au lieu de V2 (Full APK Signature) lors de la génération de l'APK signé.

91voto

Nani Kalyan Points 1152

Il a été téléchargé avec succès lorsque j'ai coché V1 (Jar Signature) au lieu de V2 (Full APK Signature) lors de la génération de l'APK signé dans Android Studio 2.3.

8 votes

J'avais les deux cases cochées : Jar Signature et Full APK Signature. Cette réponse m'a fourni les informations nécessaires.

2 votes

Pourquoi ne cocher que V1 alors que V2 est disponible pour la signature ? Vous auriez dû sélectionner à la fois V1 et V2 et accepter la réponse de Piyush Kukadiyas.

0 votes

Je vais être damné, ça a marché ! Mais pourquoi ? (J'utilise AS 3.1.3).

77voto

Piyush Kukadiya Points 1695

Android 7.0 introduit le schéma de signature APK v2, un nouveau schéma de signature d'applications qui offre des temps d'installation plus rapides et une meilleure protection contre les modifications non autorisées des fichiers APK.

Lors de la génération de l'apk signé, il y a deux cases à cocher.

  1. V1 (Signature du bocal)
  2. V2 (Signature apk complète)

Trois choix s'offrent à nous :

  1. sélectionnez V1 (pour les anciennes versions de la signature) - l'apk est téléchargé avec succès.

  2. sélectionnez V2 (pour une version plus récente de la signature) - Veuillez noter que cette sélection seule ne fonctionnera pas.

  3. sélectionnez V1 et V2 (pour les versions plus anciennes et plus récentes) - l'apk est téléchargé avec succès.

Pourquoi la sélection de la V2 seule ne fonctionne pas ?

Parce que le schéma de signature APK v2 a été introduit dans Android 7.0 (Nougat). Pour qu'un APK puisse être installé sur les appareils Android 6.0 (Marshmallow) et plus anciens, l'APK doit être signé à l'aide de la signature JAR avant d'être signé avec le schéma v2.

Pour plus d'informations sauter ici

0 votes

Merci pour l'explication, mais pourquoi Google se plaint-il lorsque j'ai coché à la fois V1 et V2 ?

0 votes

@ScottBiggs quelle est leur plainte lorsque vous avez vérifié les deux ?

22voto

Ahmad Points 525

Signé pour les deux v1 et v2 . Il sera téléchargé avec succès.

9voto

Sanoop Points 2483

Cela est dû au fait que vous n'utilisez que la signature v2 lorsque vous prenez la release build.

Alors qu'est-ce que v1 et v2 mentionnent ?

v1 est le mécanisme de signature par défaut et v2 est le mécanisme le plus récent ajouté, qui vérifie beaucoup plus rapidement. Cela signifie que les APK signés par v2 s'installent/mettent à jour un peu plus rapidement sur Android Nougat (Android 7.0, API Level 24) et les versions plus récentes.

Que devez-vous faire ?

Si vous voulez signer l'application sans aucune modification

Vérifiez v1 (jar Signature seulement) qui est la valeur par défaut.

Si vous voulez la signature la plus récente et la prise en charge des versions 7.x

Check v2 (Full Apk Signature) qui réduit également la taille de l'application.

Si vous voulez une application plus petite, capable de s'installer plus rapidement et compatible avec toutes les versions d'Android.

Vérifiez à la fois v1 et v2.

PS : Seulement applicable pour la signature des applications avec Studio, autre que l'utilisation de pipes pour construire.

Pour plus de références Lien

4voto

Piyush Patel Points 197

Comment signer l'APK en utilisant V2

https://developer.Android.com/studio/command-line/apksigner.html

Étape 1) Android Studio, sélectionnez View > Tool Windows > Terminal

    gradlew assembleRelease

2) Alignez l'APK non signé en utilisant zipalign :

zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk

3) Signez votre APK avec votre clé privée en utilisant apksigner :

apksigner sign --ks my-release-key.jks my-app-unsigned-aligned.apk --out my-app-release.apk

Remarque : pour utiliser l'outil apksigner, vous devez avoir installé la révision 24.0.3 ou supérieure des outils de construction du SDK Android. Vous pouvez mettre à jour ce paquet à l'aide du SDK Manager.

4) Vérifiez que votre APK est signé :

apksigner verify my-app-release.apk

Note : les étapes 2 à 4 sont effectuées dans l'invite de commande. G:\AndroidStudio\Sdk\build -outils \25.0.0\

0 votes

Monsieur, j'ai essayé la procédure ci-dessus mais j'ai obtenu l'erreur suivante dans ---Vous avez téléchargé un APK qui n'est pas aligné sur le zip. Vous devrez exécuter un outil d'alignement de zip sur votre APK et le télécharger à nouveau ?

0 votes

@Kapilsoni l'étape 2 est manquante. Vous devez aller au SDK -> outils de construction -> 30.0.2 Là vous trouverez zipalign

0 votes

Monsieur mais si je génère le build via la procédure ci-dessus, j'obtiens des erreurs de build non installé dans mon appareil

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X