Comment signer un fichier apk android

j'essaie de signer mon dossier apk. Je ne peux pas comprendre comment le faire. Je ne trouve pas de bonnes directions. J'ai très peu d'expérience en programmation, donc toute aide serait appréciée.

98
demandé sur BenH 2011-01-31 19:01:09

6 réponses

Le manuel est assez clair. S'il vous plaît spécifier ce que vous êtes coincé avec après que vous travaillez à travers elle, je suggérerais:

https://developer.android.com/studio/publish/app-signing.html

D'accord, une petite vue d'ensemble sans référence ou éclipse autour, alors laissez un peu d'espace pour les erreurs, mais cela fonctionne comme ceci

  • Ouvrez votre projet dans eclipse
  • Appuyez sur le bouton droit de la souris - > outils (Outils android?) - > exporter signé application (apk?)
  • Allez par le biais de l'assistant:
  • faire un nouveau magasin de clés. rappelez-vous que le mot de passe
  • Signer votre application
  • Enregistrer etc.

aussi, du lien:

compiler et signer avec Eclipse ADT

si vous utilisez Eclipse avec L'ADT plugin, vous pouvez utiliser l'Assistant d'Exportation pour exporter un signé .apk (et même créer un nouveau keystore, si nécessaire). L'Assistant D'exportation exécute tous les interaction avec le clavier et Jarsigner pour vous, ce qui vous permet de signez le paquet en utilisant une interface graphique à la place de l'exécution des procédures manuelles compiler, signer et aligner, tel que discuté surtout. Une fois que le magicien a compilé et signé votre paquet, il sera également effectuer paquet d'alignement avec zip aligner. Parce que L'Assistant D'exportation utilise les deux claviers et Jarsigner, vous doivent s'assurer qu'ils sont accessibles sur votre ordinateur, comme décrit ci-dessus dans la configuration de base pour la signature.

pour créer un signé et aligné .apk dans Eclipse:

  1. sélectionnez le projet dans L'Explorateur de paquets et sélectionnez Fichier > Exportation.
  2. ouvrez le dossier Android, sélectionnez Exporter L'application Android, et cliquez Prochain.

    L'Exportation L'Assistant d'application Android démarre maintenant, ce qui guidera vous à travers le processus de signature votre demande, y compris les étapes sélectionner la clé privée avec laquelle pour signer la .apk (ou création d'un nouveau fichier de stockage des clés et la clé privée).

  3. remplissez L'Assistant D'exportation et votre application sera compilée, signé, alignés, et prêt pour l' distribution.
78
répondu Nanne 2016-06-04 06:53:59

voici un guide sur la façon de signer manuellement une APK. Il comprend des informations sur le nouveau apk-signer introduit en build-tools 24.0.3 (10/2016)

Processus Automatisé:

Utilisez cet outil (utilise le nouveau apksigner de Google):

https://github.com/patrickfav/uber-apk-signer

clause de non-responsabilité: Im the developer :)

Processus Manuel:

Etape 1: Générer un fichier de clés (une seule fois)

vous devez générer un keystore une fois et l'utiliser pour signer votre unsigned apk. Utilisez le keytool fourni par le JDK trouvé dans %JAVA_HOME%/bin/

keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app

Étape 2 ou 4: Zipalign

zipalign qui est un outil fourni par le SDK Android trouvé dans par exemple %ANDROID_HOME%/sdk/build-tools/24.0.2/ est une étape d'optimisation obligatoire si vous voulez télécharger l'apk à la boutique Play.

zipalign -p 4 my.apk my-aligned.apk

Note: lorsque vous utilisez l'ancienne jarsigner vous devez zipalign après signature. Lorsque vous utilisez la nouvelle méthode apksigner vous le faites avant signature (confus, je sais). invoquant zipalign avant apksigner fonctionne très bien parce que apksigner préserve l'alignement et la compression APK (contrairement à jarsigner).

vous pouvez vérifier l'alignement avec

zipalign -c 4 my-aligned.apk

Étape 3: Signer Et Vérifier

utilisant des outils de construction 24.0.2 et plus

Utiliser jarsigner qui, à l'instar de l'utilitaire keytool, est livré avec le JDK de distribution trouvé dans %JAVA_HOME%/bin/ et l'utiliser comme suit:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name

et peut être vérifié avec

jarsigner -verify -verbose my_application.apk

utilisant des outils de construction 24.0.3 et plus récents

Android 7.0 introduit APK signature Scheme v2, un nouveau système de signature d'applications qui offre des temps d'installation plus rapides et plus de protection contre les modifications non autorisées aux fichiers APK (voir ici et ici pour plus de détails). C'est pourquoi Google a mis en œuvre leur propre Signeur apk appelé apksigner (duh!) Le fichier de script se trouve dans %ANDROID_HOME%/sdk/build-tools/24.0.3/ (the .jar est dans le sous-dossier /lib ). Utilisez-le comme ceci

apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name

et peut être vérifié avec

apksigner verify my-app.apk

la documentation officielle se trouve ici.

28
répondu for3st 2017-05-23 12:26:23

ne vous inquiétez pas...! Suivez ces étapes ci-dessous et vous recevrez votre signature .dossier apk. Je m'inquiétais aussi pour ça, mais ces pas m'éloignent de la frustration. Étapes à suivre pour signer votre demande:

  1. exporter le colis non signé:

clic droit sur le projet dans Eclipse -> Outils Android -> Export paquet D'Application non signé (comme ici, nous exportons notre GoogleDriveApp.apk sur le Bureau)

Signer le formulaire de demande à l'aide de votre keystore et le jarsigner outil (suivez les étapes ci-dessous):

Ouvrir cmd-->changer le répertoire où se trouve votre "jarsigner.exe " existe (comme ici dans mon système il existe à "C:\Program fichiers\Java\jdk1.6.0_17 \ bin"

entre maintenant la commande belwo dans cmd:

jarsigner-verbose-keystore c:\users\android\debug.fichier de clés c:\users\pir fahim\Ordinateurs de bureau\GoogleDriveApp.apk my_keystore_alias

, Il vous demandera de fournir votre mot de passe: Entrer Passphrase pour keystore: Il signera votre apk. pour vérifier que la signature est réussie, vous pouvez lancer:

jarsigner -vérifier c:\users\pir fahim\Ordinateurs de bureau\GoogleDriveApp.apk

il devrait revenir avec: jar vérifié.

Méthode 2

si vous utilisez eclipse avec ADT, alors il est simple de compiler, signer, aligner et préparer le fichier pour la distribution.ce que vous devez faire il suffit de suivre ces étapes.

  • Fichier > Exporter.
  • l'Exportation de l'application android
  • parcourir-- > sélectionner votre projet
  • Suivant-- > Suivant

ces étapes seront compilées, signé et zip aligné votre projet et maintenant vous êtes prêt à distribuer votre projet ou de télécharger à Google Play store.

8
répondu Pir Fahim Shah 2014-05-14 02:00:29

pour les utilisateurs de IntelliJ IDEA ou Android Studio faire ces étapes:

* Du menu Build/Generate signed APK

* Vous devez créer un chemin keystore. Dans la boîte de dialogue, cliquez sur Create new . Vous allez créer un fichier jks qui comprend vos clés. Sélectionnez le dossier, définissez un mot de passe. Donc votre clé de passe est ok.

* Créer une nouvelle clé pour votre application en utilisant alias, mot de passe clé, votre NOM, etc.

* Cliquez sur suivant.

* Dans la boîte de dialogue, sélectionnez Proguard ou non.

votre fichier APK signé est prêt.

fichier d'aide: https://www.jetbrains.com/idea/webhelp/generate-signed-apk-wizard.html

7
répondu trante 2014-05-12 11:01:53

j'ai rencontré ce problème et j'ai été résolu en vérifiant la version min sdk dans le manifeste. Il a été fixé à 15 (ICS), mais mon téléphone était en cours d'exécution 10(pain d'épice)

2
répondu RJL 2012-02-06 20:04:37

APK Signing Process


pour signer manuellement le fichier apk Android, nous avons besoin de moins de trois commandes

1 Générer le fichier de magasin de clés

keytool -genkey -v -keystore <_YOUR_KEYSTORE_NAME>.keystore -alias <_ALIAS_NAME> -keyalg RSA -keysize 2048 -validity 10000

2 de Signer Votre fichier APK en utilisant Jarsigner

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <_KEYSTORE_FILE_PATH> <_UNSIGNED_APK_PATH> <_ALIAS_NAME>

3 Align Signé APK en utilisant zipalign outil

zipalign -v 4 <_jarsigned_APK_FILE_PATH> <_ZIPALIGNED_SIGNED_APK_FILE_PATH>

#STEP-1#

Generate Keystore file


F:\ru\ru_doc\Signed_apk\MySignedApp > keytool-genkey-v-keystore < _YOUR_KEYSTORE_NAME>.keystore-alias <_ALIAS_NAME> - keyalg RSA -keysize 2048 -validité 10000

Example_

F:\ru\ru_doc\Signed_apk\MySignedApp>keytool -genkey -v -keystore id.keystore -alias MySignedApp -keyalg RSA -keysize 2048 -validity 10000

keystore mot de passe: yourApp@123 mot de passe clé: yourApp@123

CMD O/ P -

D:\ru\SignedBuilds\MySignedApp>keytool -genkey -v -keystore id.keystore
 -alias MySignedApp -keyalg RSA -keysize 2048 -validity 10000
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  MySignedApp Sample
What is the name of your organizational unit?
  [Unknown]:  Information Technology
What is the name of your organization?
  [Unknown]:  MySignedApp Demo
What is the name of your City or Locality?
  [Unknown]:  Mumbai
What is the name of your State or Province?
  [Unknown]:  Maharashtra
What is the two-letter country code for this unit?
  [Unknown]:  IN
Is CN=MySignedApp Demo, OU=Information Technology, O=MySignedApp Demo, L=Mumbai, ST=Maharashtra, C=IN corr
ect?
  [no]:  y

Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,
000 days
        for: CN=MySignedApp Demo, OU=Information Technology, O=MySignedApp Demo, L=Mumbai, ST=Maharashtra,
 C=IN
Enter key password for <MySignedApp>
        (RETURN if same as keystore password):
Re-enter new password:
They don't match. Try again
Enter key password for <MySignedApp>
        (RETURN if same as keystore password):
Re-enter new password:
[Storing id.keystore]

D:\ru\SignedBuilds\MySignedApp>

#STEP-2#

Sign your app with your private keystore using jarsigner

jarsigner-verbose-sigalg SHA1withRSA-digestalg SHA1-keystore <_KEYSTORE_FILE_PATH> <_UNSIGNED_APK_PATH> <_ALIAS_NAME>

Example_

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore D:\ru\SignedBuilds\MySignedApp\id.keystore D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk id

CMD O/ P -

D:\ru\SignedBuilds\MySignedApp>jarsigner -verbose -sigalg SHA1withRSA -
digestalg SHA1 -keystore D:\ru\SignedBuilds\MySignedApp\id.keystore D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk id ---
ect
Enter Passphrase for keystore:
   adding: META-INF/MANIFEST.MF
   adding: META-INF/---.SF
   adding: META-INF/---.RSA
  signing: AndroidManifest.xml
  ..... 
    signing: classes.dex
  signing: lib/commons-codec-1.6.jar
  signing: lib/armeabi/libkonyjsvm.so
jar signed.

Warning:
No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not
be able to validate this jar after the signer certificate's expiration date (2044-02-07) or after an
y future revocation date.

D:\ru\SignedBuilds\MySignedApp>

Verify that your APK is signed


jarsigner-verify-verbose-certs <_JARSIGNED_APK_FILE_PATH>

Example_

jarsigner -verify -verbose -certs MySignedAppS1-release-unsigned.apk

CMD O/ P -

D:\ru\SignedBuilds\MySignedApp>jarsigner -verify -verbose -certs MySignedAppS1-release-unsigned.apk
 s = signature was verified
  m = entry is listed in manifest
  k = at least one certificate was found in keystore
  i = at least one certificate was found in identity scope

jar verified.

Warning:
This jar contains entries whose certificate chain is not validated.
This jar contains signatures that does not include a timestamp. Without a timestamp, users may not b
e able to validate this jar after the signer certificate's expiration date (2044-02-09) or after any
 future revocation date.

D:\ru\SignedBuilds\MySignedApp>

#STEP 3#

aligner le paquet APK final en utilisant zipalign

zipalign-v 4 <_jarsigned_APK_FILE_PATH> < _ZIPALIGNED_SIGNED_APK_FILE_PATH_with_name_ofsignedapk_>

Example_

zipalign -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk

CMD O/ P -

D:\Android\android-sdk\build-tools.1.0>zipalign -v 4 D:\ru\ru_doc\Signed_apk\MySignedApp.09.16
_prod_playstore\MySignedAppS1-release-unsigned.apk D:\ru\ru_doc\Signed_apk\MySignedApp.09.16_prod
_playstore\MySignedApp.apk
Verifying alignment of D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk (
4)...

  4528613 classes.dex (OK - compressed)
 5656594 lib/commons-codec-1.6.jar (OK - compressed)
 5841869 lib/armeabi/libkonyjsvm.so (OK - compressed)
Verification succesful

D:\Android\android-sdk\build-tools.1.0>

Verify that your APK is Aligned succesfully


zipalign-c-v 4 <_YOUR_APK_PATH>

Example_

zipalign  -c -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk

CMD O/ P -

D:\Android\android-sdk\build-tools.1.0>zipalign  -c -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk
Verifying alignment of D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk (
4)...

 4453984 res/drawable/zoomout.png (OK)
 4454772 res/layout/tabview.xml (OK - compressed)
 4455243 res/layout/wheel_item.xml (OK - compressed)
 4455608 resources.arsc (OK)
 4470161 classes.dex (OK - compressed)
 5597923 lib/commons-codec-1.6.jar (OK - compressed)
 5783198 lib/armeabi/libkonyjsvm.so (OK - compressed)
Verification succesful

D:\Android\android-sdk\build-tools.1.0>

Note:

Verify commande est juste pour vérifier que APK est construit et signé correctement!

référence

signature-manuelle

androidapk-code-signature-processus

j'espère que cela aidera sur e et à toutes :)

0
répondu Rupesh Yadav 2017-06-05 09:58:05