Як налаштувати gradle та андроїд-студію для випуску збірки?


79

Я хочу створити додаток для Android і почати підписувати його. Для цього мені потрібно мати Release версію apk. Документація Google пропонує лише способи Eclipse та ant для збірки випусків: http://developer.android.com/tools/publishing/app-signing.html#releasecompile

Однак я не можу знайти, як змусити gradle build версію 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
    }
}

Чого мені не вистачає?


В даний час я не використовую Gradle в Android Studio, але спосіб зробити це за допомогою оригінальної збірки Ant - це просто використовувати Build-> Generate Signed APKз меню.
free3dom

Дякую, я пропустив це, це буде робити. Але все-таки я хочу знати, як створити окрему версію неподписаного пакета окремо, а потім зробити підпис і все, що я хочу, з ним.
IBr

Ви повинні автоматично отримати версію випуску та налагодження для Ваших варіантів збірки. Якщо ви хочете пакет без підпису, повідомте мене.
винен

Відповіді:


44

в останній версії андроїд-студії ви можете просто зробити:

./gradlew assembleRelease

або aRкоротше. Це створить непідписаний випуск apk. Створення підписаного apk можна зробити аналогічним чином, або ви можете використати Build -> Generate Signed Apk в Android Studio.

Документи дивіться тут

Ось мій build.gradle для довідки:

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 {

    }
}

3
В останній версії Android Studio (0.2.11) Generate Signed Apk більше не працює. Вам наказано налаштувати конфігурацію підпису у вашому файлі gradle.bundle, який (імовірно) повинен запускатися вручну з командного рядка, якщо ви не хочете ввести там свій пароль: tools.android.com/tech- docs / new-build-system /…

13
Чому чим новіша Android Studio, тим складніша у використанні?
Bagusflyer

121
  1. відкрити Build Variantsпанель, яка зазвичай знаходиться вздовж лівої нижньої частини вікна :

Варіанти збірки

  1. встановлено debugнаrelease
  2. shift+f10 біжи !!

тоді Android Studio виконає assembleReleaseзавдання та встановить xx-release.apk на ваш пристрій.


5
як відкрити варіанти збірки? це те, що я можу зробити в Android Studio?
Lou Morda

17
Варіанти збірки знаходяться ліворуч, будь ласка, див. Доданий знімок екрана, щоб краще уявити місце розташування :) Знімок екрана
Jake Zachariah Nixon

7
Спробував це. Але отримання помилки: "app-release-unsigned.apk не підписаний. Будь ласка, налаштуйте інформацію про підпис для вибраного аромату за допомогою діалогового вікна" Структура проекту ".
Відкрити

2
@jrhamza Слідуйте, коли вам буде запропоновано додати ключ звільнення.
ipcjs

2
Вражаюче, наскільки добре прихований цей простий перемикач, якщо у вас ніколи не було відкритим вікно "Варіанти побудови"!
aardvarkk

33

Не потрібно оновлювати gradle для створення програми-випуску в студії Android. Якщо ви були користувачем eclipse, це буде для вас так просто. Якщо ви новачок, дотримуйтесь інструкцій

1: Перейдіть до розділу "Збірка" на панелі інструментів. 2: Виберіть опцію "Створити підписаний файл .apk ...". введіть тут опис зображення

3: заповніть відкриту форму та перейдіть далі 4: якщо у вас вже є .keystore або .jks, виберіть цей файл, введіть свій пароль та псевдонім та відповідний пароль. 5: Або не маєте файлу .keystore або .jks, потім натисніть кнопку Створити ..., як показано на рис. 1, а потім заповніть форму.введіть тут опис зображення

Вище процес полягав у тому, щоб зробити збірку вручну. Якщо ви хочете, щоб андроїд-студія автоматично підписувала ваш додаток

В Android Studio ви можете налаштувати свій проект на автоматичний підпис APK-файлу випуску під час процесу збірки:

У браузері проекту клацніть правою кнопкою миші на своєму додатку та виберіть Відкрити налаштування модуля. У вікні Структура проекту виберіть модуль програми у розділі Модулі. Клацніть на вкладку Підпис. Виберіть файл свого сховища ключів, введіть ім’я для цієї конфігурації підпису (оскільки їх можна створити більше) і введіть необхідну інформацію. введіть тут опис зображення Рисунок 4. Створення конфігурації підписання в Android Studio.

Клацніть на вкладку Типи збірки. Виберіть збірку випуску. У розділі Config Config виберіть конфігурацію підпису, яку ви щойно створили. введіть тут опис зображення Рисунок 5. Виберіть конфігурацію підписання в Android Studio.

4: Найважливіше, що робить налагоджувальним = 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


2
Ти брат, який рятує життя.
Jigar

21

Щоб активувати installReleaseзавдання, вам просто потрібно signingConfig. Це все.

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

Нарешті, плагін створює завдання встановлення / видалення для всіх типів збірки (налагодження, випуск, тестування), якщо вони можуть бути встановлені (що вимагає підписання).

Ось що ви хочете:

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

Чи означає це, що ми зберігаємо пароль у зручному для читання форматі? Як обробляти проекти у відкритому сховищі, щоб зберегти паролі приватними?
sivag1

2
Ви можете помістити їх у місцевій мережі gradle.propertiesабо зберегти їх у CI.
Джаред Берроуз,

1
Не вдалося знайти метод storeFile ()
hiddeneyes02,

НабірstoreFile file(filename)
Норехов

SignConfig SignConfigs.release у типах збірки змінив мене!
paul_f

8

Це процедура налаштування версії запуску

1- Змінити варіанти збірки, щоб випустити версію.

введіть тут опис зображення

2- Відкрита структура проекту. введіть тут опис зображення

3- Змініть конфігурацію за замовчуванням на $ signatureConfigs.release введіть тут опис зображення


1
Ти бог серед людей
Мітч

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.