Как настроить gradle и Android studio для сборки релиза?


Я хочу построить приложение для android и начать его подписывать. Для этого мне нужно иметь версию АПК. Документация Google предлагает только Eclipse и ant способы создания релизов: http://developer.android.com/tools/publishing/app-signing.html#releasecompile

однако я не могу найти, как заставить gradle построить релизную версию apk. build.gradle не дает никаких подсказок. gradlew tasks предполагает, что нет установки конфигурации выпуска, но удалить релиз существует:

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

мой 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
    }
}

чего мне не хватает?

4 58

4 ответа:

в последней версии android studio, вы можете просто сделать:

./gradlew assembleRelease

или aR для краткости. Это позволит произвести без выхода АПК. Создание подписанного apk может быть сделано аналогичным образом, или вы можете использовать Build -> Generate Signed Apk в Android Studio.

смотрите документы здесь

вот мой билд.ш Для справки:

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 {

    }
}
  1. открыть Build Variants
  2. set debug to release
  3. shift+f10 бежать!!

затем Android Studio выполнит assembleRelease задача и установка xx-release.apk для вашего устройства.

нет необходимости обновлять gradle для создания приложения выпуска в Android studio.Если вы были с Eclipse, то это будет так легко для вас. Если вы новичок, то выполните следующие действия

1: Перейдите в раздел" сборка " на панели инструментов. 2: выберите " Создать подписанный APK..." опцион. enter image description here

3: заполните открытую форму и идите дальше 4 :Если у вас уже есть .хранилище ключей или .jks затем выберите этот файл введите свой пароль и псевдоним и соответствующий пароль. 5: или не имеют .хранилище ключей или .следующих файл затем нажмите на кнопку Создать новый... кнопку, как показано на рис 1, то заполните форму.enter image description here

выше процесс должен был сделать сборку вручную. Если вы хотите, чтобы android studio автоматически подписывала ваше приложение

в Android Studio вы можете настроить свой проект для автоматической подписи вашего выпуска APK во время процесса сборки:

в браузере проектов щелкните правой кнопкой мыши приложение и выберите Открыть Настройки модуля. В окне структура проекта выберите модуль приложения под модулями. Перейдите на вкладку подпись. Выберите файл хранилища ключей, введите имя для этой конфигурации подписи (так как вы можете создать несколько) и введите необходимую информацию. enter image description here Рис.4. Создайте конфигурацию подписи в Android Studio.

перейдите на вкладку типы построения. Выберите сборку. В разделе Конфигурация подписи выберите только что созданную конфигурацию подписи. enter image description here Рис. 5. Выберите конфигурацию подписи в Android Studio.

4:Большинство Важная вещь, которая делает debuggable=false в gradle.

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

посетите для получения дополнительной информации developer.android.com

активировать installRelease задач, вам просто нужно signingConfig. Это все.

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

наконец, плагин создает задачи установки/удаления для всех построить типы (debug, release, test), если они могут быть установлены (которые требуется подпись).

вот что вы хотите:

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

вот как получить installRelease задачи:

пример 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
    }
  }
}