web-dev-qa-db-fra.com

Android Studio: comment générer un apk signé en utilisant Gradle?

J'ai cherché sur Google et SO mais je ne trouve pas ma réponse.

C'est la première fois que je travaille avec le système Gradle et je suis maintenant sur le point de générer un fichier APK signé pour le télécharger sur Google Play (le projet est importé d'Eclipse).

Maintenant, j'ai lu la partie ici http://tools.Android.com/tech-docs/new-build-system/user-guide#TOC-Building-and-Tasks que vous devriez ajouter signingConfigs à votre build.gradle

J'ai ajouté ces lignes et maintenant j'ai vu qu'il fallait lancer ./gradlew assembleRelease mais l'exécution de cette commande dans ma cmd renvoie "gradle" n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes. J'ai aussi essayé de faire un clic droit sur le build.gradle et de l'exécuter, en disant que c'était réussi, mais une fois que j'ai regardé dans le dossier build/apk, seul un fichier appelé app-debug-unaligned.apk

Alors, comment puis-je générer l'apk signé en utilisant le système Gradle?

84
Gooey

Il y a trois façons de générer votre construction selon le buildType. (Dans votre cas, c'est une version, mais vous pouvez nommer ce que vous voulez.)

  1. Accédez à la tâche Gradle dans le panneau de droite de Android Studio) et recherchez assembleRelease ou assemble(#your_defined_buildtype) sous Tâches du module.

  2. Allez à Variante de construction dans le panneau de gauche et sélectionnez la construction dans le menu déroulant.

  3. Accédez au répertoire racine du projet dans File Explore et ouvrez cmd/terminal et exécutez:

    Linux: ./gradlew assembleRelease or assemble(#your_defined_buildtype)

    Windows: gradlew assembleRelease or assemble(#your_defined_buildtype)

Si vous voulez faire une version release (seulement), vous pouvez utiliser Build > Generate Signed apk. Pour les autres types de build, seules les trois options ci-dessus sont disponibles.

Vous pouvez trouver le fichier APK généré dans votre module/build répertoire ayant le nom du type de construction.

95
pyus13

Il est possible de prendre n'importe quel projet Android Studio Gradle et de le construire/le signer à partir de la ligne de commande sans éditer aucun fichier. Ceci le rend très pratique pour stocker votre projet dans le contrôle de version tout en conservant vos clés et les mots de passe se séparent:

./gradlew assembleRelease -Pandroid.injected.signing.store.file=$KEYFILE -Pandroid.injected.signing.store.password=$STORE_PASSWORD -Pandroid.injected.signing.key.alias=$KEY_ALIAS -Pandroid.injected.signing.key.password=$KEY_PASSWORD
55
Wayne Piekarski

Vous pouvez utiliser ce code

Android {
   ...
    signingConfigs {
        release {
            storeFile file("../your_key_store_file.jks")
            storePassword "some_password"
            keyAlias "alias_name"
            keyPassword "key_password"
        }
    }

    buildTypes {

        release {
            signingConfig signingConfigs.release
        }
    }
   ...
}

puis à partir de votre terminal

gradle assembleRelease

vous obtiendrez l'apk à

votre-application Android/construire/sorties/apk/votre-application Android release.apk

30
droidchef

Je pense que cela peut vous aider https://www.timroes.de/2013/09/22/handling-signing-configs-with-gradle/ puis sélectionnez simplement le Release parmi le Build Variants

2
douglaszuniga