J'essaye de signer mon fichier apk. Je ne sais pas comment faire. Je ne peux pas trouver de bonnes directions en profondeur. J'ai très peu d'expérience en programmation, donc toute aide serait appréciée.
D'accord, un petit aperçu sans référence ni éclipse, alors laissez un peu d'espace pour les erreurs, mais cela fonctionne comme ça
Ouvrez votre projet dans eclipse
Appuyez avec le bouton droit de la souris -> outils (outils Android?) -> exporter une application signée (apk?)
Passez par l'assistant:
Créez un nouveau magasin de clés. souviens-toi de ce mot de passe
Signez votre application
Enregistrez-le, etc.
Aussi, à partir du lien:
Compilez et signez avec Eclipse ADT
Si vous utilisez Eclipse avec le plugin ADT, vous pouvez utiliser l'assistant d'exportation pour exporter un fichier .apk signé (et même créer un nouveau fichier de clés, si nécessaire). L'assistant d'exportation effectue toutes les interactions avec Keytool et Jarsigner pour vous, ce qui vous permet de signer le package à l'aide d'une interface graphique au lieu d'exécuter les procédures manuelles pour compiler, signer et aligner, comme indiqué ci-dessus. Une fois que l'assistant a compilé et signé votre package, il effectuera également l'alignement du package avec zip align. Étant donné que l'Assistant d'exportation utilise à la fois Keytool et Jarsigner, vous devez vous 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 .apk signé et aligné dans Eclipse:
Sélectionnez le projet dans l'Explorateur de packages et sélectionnez Fichier> Exporter.
Ouvrez le dossier Android, sélectionnez Exporter l'application Android et cliquez sur Suivant.
L'assistant Exporter une application Android démarre maintenant, qui vous guidera tout au long du processus de signature de votre application, y compris les étapes de sélection de la clé privée avec laquelle signer le .apk (ou de création d'un nouveau fichier de clés et d'une clé privée).
Complétez l'assistant d'exportation et votre application sera compilée, signée, alignée et prête pour la distribution.
Je ne comprends pas comment commencer. J'utilise la version eclipse: Helios Service Release 1
chriss
2
mais s'il vous plaît lire la chose ENTIER. il y a aussi quelques conseils à la fin pour l'éclipse
Nanne
1
dans la création de la clé, que dois-je entrer pour l'alias?
chriss
9
Avez-vous lu le manuel? -alias <alias_name> An alias for the key. Only the first 8 characters of the alias are used.C'est juste un alias. Un nom, si vous voulez. Je suggérerais "firstkey" :-)
Nanne
1
Désolé, je ne comprends toujours pas. Comment utiliserais-je cet alias. Quel est son objectif?
user462990
37
Voici un guide sur la façon de signer manuellement un APK. Il comprend des informations sur le nouveau apk-signerintroduit dans build-tools 24.0.3(10/2016)
Processus automatisé:
Utilisez cet outil (utilise le nouvel apksigner de Google):
zipalignqui est un outil fourni par le SDK Android trouvé par exemple, %ANDROID_HOME%/sdk/build-tools/24.0.2/est une étape d'optimisation obligatoire si vous souhaitez télécharger l'apk sur le Play Store.
zipalign -p 4my.apk my-aligned.apk
Remarque: lorsque vous utilisez l'ancien, jarsignervous devez zipalign APRÈS la signature. Lorsque vous utilisez la nouvelle apksignerméthode, vous le faites AVANT de signer (déroutant, je sais). L'appel de zipalign avant apksigner fonctionne correctement car apksigner préserve l'alignement et la compression de l'APK (contrairement à jarsigner).
Utilisation des outils de construction 24.0.3 et plus récents
Android 7.0 présente APK Signature Scheme v2, un nouveau schéma de signature d'applications qui offre des temps d'installation d'application plus rapides et plus de protection contre les modifications non autorisées des fichiers APK (voir ici et ici pour plus de détails). Google a donc implémenté son propre signataire apk appeléapksigner (duh!) Le fichier de script se trouve dans %ANDROID_HOME%/sdk/build-tools/24.0.3/(le .jar est dans le /libsous - dossier). Utilisez-le comme ça
Pour les utilisateurs d'IntelliJ IDEA ou d'Android Studio, procédez comme suit:
* Dans le menu Build/Generate signed APK
* Vous devez créer un chemin de fichier de clés. 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 keystore ok.
* Créez une nouvelle clé pour votre application en utilisant un alias, un mot de passe clé, votre nom, etc.
* Cliquez sur Suivant.
* Dans la boîte de dialogue, sélectionnez Proguard ou non.
Ne t'inquiète pas ...! Suivez ces étapes ci-dessous et vous obtiendrez votre fichier .apk signé. J'étais également inquiet à ce sujet, mais ces étapes me soulagent de la frustration. Étapes pour signer votre demande:
Exportez le package non signé:
Faites un clic droit sur le projet dans Eclipse -> Outils Android -> Exporter le package d'application non signé (comme ici, nous exportons notre GoogleDriveApp.apk vers le bureau)
Signez l'application à l'aide de votre keystore et de l'outil jarsigner (suivez les étapes ci-dessous):
Ouvrez cmd -> changez le répertoire où se trouve votre "jarsigner.exe" (comme ici dans mon système, il existe à "C: \ Program Files \ Java \ jdk1.6.0_17 \ bin"
Il vous demandera de fournir votre mot de passe: Entrez la phrase de passe pour le keystore: il signera votre apk. Pour vérifier que la signature est réussie, vous pouvez exécuter:
Si vous utilisez eclipse avec ADT, il est simple de compiler, signer, aligner et préparer le fichier pour la distribution.
Fichier> Exporter.
Exporter l'application Android
Parcourir -> sélectionnez votre projet
Suivant -> Suivant
Ces étapes compileront, signeront et aligneront votre projet sur zip et vous êtes maintenant prêt à le distribuer ou à le télécharger sur Google Play Store.
C'est exactement ce dont j'avais besoin, j'utilisais un nouvel outil de construction en ligne et je devais utiliser mon keystore précédent, pas le nouveau. La seule chose qui me manquait était l'alignement ZIP de l'apk, donc si quelqu'un a le même problème, allez ici stackoverflow.com/a/22682132/826194
Larzan
5
Processus de signature APK
Pour signer manuellement un fichier APK Android, exécutez ces trois commandes:
mot de passe du fichier de
clés: votreApp @ 123 mot de passe clé: votreApp @ 123
CMD O / P
D:\ru\SignedBuilds\MySignedApp>keytool -genkey -v -keystore id.keystore
-aliasMySignedApp-keyalg RSA -keysize 2048-validity 10000Enter keystore password:Re-enter new password:Whatis your first andlast name?[Unknown]:MySignedAppSampleWhatis the name of your organizational unit?[Unknown]:InformationTechnologyWhatis the name of your organization?[Unknown]:MySignedAppDemoWhatis the name of your CityorLocality?[Unknown]:MumbaiWhatis the name of your StateorProvince?[Unknown]:MaharashtraWhatis the two-letter country code forthis unit?[Unknown]: IN
Is CN=MySignedAppDemo, OU=InformationTechnology, O=MySignedAppDemo, L=Mumbai, ST=Maharashtra, C=IN corr
ect?[no]: y
Generating2,048 bit RSA key pair andself-signed certificate (SHA256withRSA)with a validity of10,000 days
for: CN=MySignedAppDemo, OU=InformationTechnology, O=MySignedAppDemo, L=Mumbai, ST=Maharashtra,
C=IN
Enter key password for<MySignedApp>(RETURN if same as keystore password):Re-enter new password:[Storing id.keystore]
D:\ru\SignedBuilds\MySignedApp>
ÉTAPE 2
Sign your app with your private keystore using jarsigner
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
EnterPassphrasefor 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 andthis jar isnot 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>
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 isnot 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>
J'ai rencontré ce problème et j'ai été résolu en vérifiant la version min sdk dans le manifeste. Il était réglé sur 15 (ICS), mais mon téléphone fonctionnait sur 10 (Gingerbread)
Réponses:
Le manuel est assez clair. Veuillez spécifier la partie avec laquelle vous êtes coincé après avoir travaillé dessus, je suggérerais:
https://developer.android.com/studio/publish/app-signing.html
D'accord, un petit aperçu sans référence ni éclipse, alors laissez un peu d'espace pour les erreurs, mais cela fonctionne comme ça
Aussi, à partir du lien:
la source
-alias <alias_name> An alias for the key. Only the first 8 characters of the alias are used.
C'est juste un alias. Un nom, si vous voulez. Je suggérerais "firstkey" :-)Voici un guide sur la façon de signer manuellement un APK. Il comprend des informations sur le nouveau
apk-signer
introduit dansbuild-tools 24.0.3
(10/2016)Processus automatisé:
Utilisez cet outil (utilise le nouvel apksigner de Google):
https://github.com/patrickfav/uber-apk-signer
Avertissement: Je suis le développeur :)
Processus manuel:
Étape 1: Générer Keystore (une seule fois)
Vous devez générer un keystore une fois et l'utiliser pour signer votre
unsigned
apk. Utilisez le fourni par le JDK trouvé danskeytool
%JAVA_HOME%/bin/
Étape 2 ou 4: Zipalign
zipalign
qui est un outil fourni par le SDK Android trouvé par exemple,%ANDROID_HOME%/sdk/build-tools/24.0.2/
est une étape d'optimisation obligatoire si vous souhaitez télécharger l'apk sur le Play Store.Remarque: lorsque vous utilisez l'ancien,
jarsigner
vous devez zipalign APRÈS la signature. Lorsque vous utilisez la nouvelleapksigner
méthode, vous le faites AVANT de signer (déroutant, je sais). L'appel de zipalign avant apksigner fonctionne correctement car apksigner préserve l'alignement et la compression de l'APK (contrairement à jarsigner).Vous pouvez vérifier l'alignement avec
Étape 3: signer et vérifier
Utilisation de build-tools 24.0.2 et plus
Utilisez
jarsigner
qui, comme le keytool, est fourni avec la distribution JDK trouvée dans%JAVA_HOME%/bin/
et utilisez-le comme ceci:et peut être vérifié avec
Utilisation des outils de construction 24.0.3 et plus récents
Android 7.0 présente APK Signature Scheme v2, un nouveau schéma de signature d'applications qui offre des temps d'installation d'application plus rapides et plus de protection contre les modifications non autorisées des fichiers APK (voir ici et ici pour plus de détails). Google a donc implémenté son propre signataire apk appelé
apksigner
(duh!) Le fichier de script se trouve dans%ANDROID_HOME%/sdk/build-tools/24.0.3/
(le .jar est dans le/lib
sous - dossier). Utilisez-le comme çaet peut être vérifié avec
La documentation officielle peut être trouvée ici.
la source
Pour les utilisateurs d'IntelliJ IDEA ou d'Android Studio, procédez comme suit:
* Dans le menu
Build/Generate signed APK
* Vous devez créer un chemin de fichier de clés. 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 keystore ok.* Créez une nouvelle clé pour votre application en utilisant un alias, un 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
la source
Ne t'inquiète pas ...! Suivez ces étapes ci-dessous et vous obtiendrez votre fichier .apk signé. J'étais également inquiet à ce sujet, mais ces étapes me soulagent de la frustration. Étapes pour signer votre demande:
Faites un clic droit sur le projet dans Eclipse -> Outils Android -> Exporter le package d'application non signé (comme ici, nous exportons notre GoogleDriveApp.apk vers le bureau)
Signez l'application à l'aide de votre keystore et de l'outil jarsigner (suivez les étapes ci-dessous):
Ouvrez cmd -> changez le répertoire où se trouve votre "jarsigner.exe" (comme ici dans mon système, il existe à "C: \ Program Files \ Java \ jdk1.6.0_17 \ bin"
Maintenant, entrez la commande belwo dans cmd:
Il vous demandera de fournir votre mot de passe: Entrez la phrase de passe pour le keystore: il signera votre apk. Pour vérifier que la signature est réussie, vous pouvez exécuter:
Il devrait revenir avec: jar vérifié.
Méthode 2
Si vous utilisez eclipse avec ADT, il est simple de compiler, signer, aligner et préparer le fichier pour la distribution.
Ces étapes compileront, signeront et aligneront votre projet sur zip et vous êtes maintenant prêt à le distribuer ou à le télécharger sur Google Play Store.
la source
Processus de signature APK
Pour signer manuellement un fichier APK Android, exécutez ces trois commandes:
Générer un fichier Keystore
Signez votre fichier APK avec
jarsigner
Aligner l'APK signé à l'aide de l'outil zipalign
ÉTAPE 1
Generate Keystore file
Exemple:
mot de passe du fichier de clés: votreApp @ 123 mot de passe clé: votreApp @ 123
CMD O / P
ÉTAPE 2
Sign your app with your private keystore using jarsigner
Exemple
CMD O / P
Verify that your APK is signed
Exemple
CMD O / P
ÉTAPE 3
Alignez le package APK final à l'aide de zipalign
Exemple
CMD O / P
Verify that your APK is Aligned successfully
Exemple
CMD O / P
Remarque:
La commande de vérification sert uniquement à vérifier si l'APK est correctement créé et signé!
Références
J'espère que cela aidera tout un chacun :)
la source
J'ai rencontré ce problème et j'ai été résolu en vérifiant la version min sdk dans le manifeste. Il était réglé sur 15 (ICS), mais mon téléphone fonctionnait sur 10 (Gingerbread)
la source