97 votes

Comment configurer gradle et Android studio pour faire une release build ?

Je veux créer une application Android et commencer à la signer. Pour cela, j'ai besoin de la version Release de l'apk. La documentation de Google ne propose que les méthodes Eclipse et ant pour avoir des versions release : http://developer.Android.com/tools/publishing/app-signing.html#releasecompile

Cependant je ne trouve pas comment forcer gradle à construire la version release de l'apk. build.gradle ne donne pas non plus d'indications. gradlew tasks suggère qu'il n'y a pas de configuration d'installation de la version, mais que la désinstallation de la version existe :

Install tasks
-------------
installDebug - Installs the Debug build
installTest - Installs the Test build for the Debug build
uninstallAll - Uninstall all applications.
uninstallDebug - Uninstalls the Debug build
uninstallRelease - Uninstalls the Release build
uninstallTest - Uninstalls the Test build for the Debug build

Mon build.gradle :

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.android.support:support-v4:13.0.+'
    compile files('libs/android-support-v4.jar')
    compile project(":libraries:ActionBarSherlock")
    compile project(":libraries:CollabsibleSearchMenu")
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 16
    }
}

Que me manque-t-il ?

154voto

ipcjs Points 988
  1. ouvrir le Build Variants qui se trouve généralement dans le volet le long du côté inférieur gauche de la fenêtre :

Build Variants

  1. fixer debug a release
  2. shift+f10 courir !

puis, Android Studio exécutera assembleRelease et installez xx-release.apk sur votre appareil.

49voto

dres Points 338

Dans la dernière version d'Android studio, vous pouvez simplement faire :

./gradlew assembleRelease

ou aR en abrégé. Cela produira une version non signée de l'apk. Construire une apk signée peut être fait de la même manière ou vous pouvez utiliser Build -> Generate Signed Apk dans Android Studio.

Voir les documents ici

Voici mon build.gradle pour référence :

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:0.5.+'
  }
}
apply plugin: 'android'

dependencies {
  compile fileTree(dir: 'libs', include: '*.jar')
}

android {
compileSdkVersion 17
buildToolsVersion "17.0.0"

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }

    // Move the tests to tests/java, tests/res, etc...
    instrumentTest.setRoot('tests')

    // Move the build types to build-types/<type>
    // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
    // This moves them out of them default location under src/<type>/... which would
    // conflict with src/ being used by the main source set.
    // Adding new build types or product flavors should be accompanied
    // by a similar customization.
    debug.setRoot('build-types/debug')
    release.setRoot('build-types/release')

}

buildTypes {
    release {

    }
}

35voto

ohm Points 41

Il n'est pas nécessaire de mettre à jour gradle pour faire une application release dans Android studio. Si vous êtes un utilisateur d'eclipse alors ce sera très facile pour vous. Si vous êtes nouveau, suivez les étapes suivantes

1 : Allez dans la section "Build" de la barre d'outils. 2 : Choisissez l'option "Generate Signed APK...". enter image description here

3:remplir le formulaire ouvert et passer à l'étape suivante 4 :si vous avez déjà un fichier .keystore ou .jks, choisissez ce fichier et entrez votre mot de passe et votre nom d'alias ainsi que le mot de passe correspondant. 5 : Si vous n'avez pas de fichier .keystore ou .jks, cliquez sur le bouton Create new... comme indiqué sur l'image 1 et remplissez le formulaire. enter image description here

Le processus ci-dessus a été réalisé manuellement. Si vous voulez qu'Android studio signe automatiquement votre application

Dans Android Studio, vous pouvez configurer votre projet pour qu'il signe automatiquement votre version de l'APK pendant le processus de construction :

Dans le navigateur du projet, faites un clic droit sur votre application et sélectionnez Open Module Settings. Dans la fenêtre Structure du projet, sélectionnez le module de votre application sous Modules. Cliquez sur l'onglet Signing. Sélectionnez votre fichier keystore, saisissez un nom pour cette configuration de signature (vous pouvez en créer plusieurs) et saisissez les informations requises. enter image description here Figure 4. Créer une configuration de signature dans Android Studio.

Cliquez sur l'onglet Types de construction. Sélectionnez le build de la version. Sous Signing Config, sélectionnez la configuration de signature que vous venez de créer. enter image description here Figure 5. Sélection d'une configuration de signature dans Android Studio.

4:La chose la plus importante qui rend debuggable=false chez gradle.

    buildTypes {
        release {
           minifyEnabled false
          proguardFiles getDefaultProguardFile('proguard-  android.txt'), 'proguard-rules.txt'
        debuggable false
        jniDebuggable false
        renderscriptDebuggable false
        zipAlignEnabled true
       }
     }

Visitez le site pour plus d'informations developer.Android.com

22voto

Jared Burrows Points 3932

Pour activer le installRelease vous avez simplement besoin d'un signingConfig . C'est tout.

En http://tools.Android.com/tech-docs/new-build-system/user-guide#TOC-Android-tasks :

Enfin, le plugin crée des fonctions d'installation/désinstallation. (debug, release, test), à condition qu'elles puissent être installées (ce qui nécessite la signature).

Voici ce que vous voulez :

Install tasks
-------------
installDebug - Installs the Debug build
installDebugTest - Installs the Test build for the Debug build
installRelease - Installs the Release build
uninstallAll - Uninstall all applications.
uninstallDebug - Uninstalls the Debug build
uninstallDebugTest - Uninstalls the Test build for the Debug build
uninstallRelease - Uninstalls the Release build   <--- release

Voici comment obtenir le installRelease tâche :

Ejemplo build.gradle :

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

apply plugin: 'com.android.application'

android {
  compileSdkVersion 22
  buildToolsVersion '22.0.1'

  defaultConfig {
    applicationId 'demo'
    minSdkVersion 15
    targetSdkVersion 22
    versionCode 1
    versionName '1.0'
  }

  signingConfigs {
      release {
          storeFile <file>
          storePassword <password>
          keyAlias <alias>
          keyPassword <password>
      }
  }

  buildTypes {
    release {
        signingConfig signingConfigs.release
    }
  }
}

22voto

Houssin Boulla Points 219

Il s'agit d'une procédure de configuration de la version d'exécution.

1- Changer les variantes de construction en version release.

enter image description here

2- Structure de projet ouverte. enter image description here

3- Changer la configuration par défaut en $signingConfigs.release enter image description here

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