web-dev-qa-db-fra.com

Comment configurer gradle et Android studio pour créer une version release?

Je veux construire Android app et commencer à le signer. Pour cela, je dois disposer de la version Release d'apk. La documentation Google ne propose que des méthodes Eclipse et ant permettant de créer des versions: http: //developer.Android.com/tools/publishing/app-signing.html#releasecompile

Cependant, je ne trouve pas comment forcer la version de apk de la version de construction de Gradle. build.gradle ne donne aucune indication non plus. gradlew tasks suggère qu’il n’existe pas de configuration d’installation mais que la version de désinstallation 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

Ma 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
    }
}

Qu'est-ce qui me manque?

67
IBr

dans la dernière version de Android studio, vous pouvez simplement faire:

./gradlew assembleRelease

ou aR pour faire court. Cela produira une version non signée apk. Construire un apk signé peut être fait de la même manière ou vous pouvez utiliser Build -> Generate Signed Apk in Android Studio.

Voir la documentation 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 {

    }
}
41
dres
  1. ouvrez le volet Build Variants, généralement présent dans le coin inférieur gauche de la fenêtre :

Build Variants

  1. mettre debug sur release
  2. shift+f10 Run !!

then, Android Studio exécutera la tâche assembleRelease et installera xx-release.apk sur votre appareil.

91
ipcjs

Il n'est pas nécessaire de mettre à jour Gradle pour créer l'application de publication dans Android studio.Si vous étiez un utilisateur d'Eclipse, ce sera tellement facile pour vous. Si vous êtes nouveau, suivez les étapes

1: Allez à la "Construction" dans la section de la barre d’outils. 2: Choisissez l'option "Générer l'APK signé ...". enter image description here

3: remplissez le formulaire ouvert et passez à 4: si vous avez déjà .keystore ou .jks, choisissez ce fichier et entrez votre mot de passe, votre pseudonyme et votre mot de passe respectif. 5: Ou n’avez pas de fichier .keystore ou .jks, puis cliquez sur le bouton Créer nouveau ... comme indiqué sur la photo 1, puis remplissez le formulaire.enter image description here

Le processus ci-dessus était de faire la construction manuellement. Si vous souhaitez Android studio signer automatiquement votre application)

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

Dans le navigateur du projet, cliquez avec le bouton droit de la souris sur votre application et sélectionnez Ouvrir les paramètres du module. Dans la fenêtre Structure du projet, sélectionnez le module de votre application sous Modules. Cliquez sur l'onglet Signature. Sélectionnez votre fichier de clés, entrez un nom pour cette configuration de signature (vous pouvez en créer plusieurs), puis entrez les informations requises. enter image description here Figure 4. Créez une configuration de signature dans Android Studio.

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

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

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

visitez pour plus d'infos developer.Android.com

28
AndroidLad

Pour activer la tâche installRelease, vous avez simplement besoin d'un signingConfig. C'est tout.

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

Enfin, le plug-in crée des tâches d'installation/de désinstallation pour tous les types de construction (débogage, édition, test), dans la mesure où ils peuvent être installés (ce qui nécessite une signature).

Voici ce que tu veux:

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 la tâche installRelease:

Exemple 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
    }
  }
}
20
Jared Burrows