Ich möchte eine Android-App erstellen und mit dem Signieren beginnen. Dafür brauche ich die Release-Version von apk. In der Google-Dokumentation werden nur Eclipse- und Ant-Methoden für Release-Builds vorgeschlagen: http://developer.android.com/tools/publishing/app-signing.html#releasecompile
Ich kann jedoch nicht herausfinden, wie man die Gradle Build Release-Version von apk erzwingt. build.gradle
gibt auch keine Hinweise. gradlew tasks
schlägt vor, dass es keine Installationsversion gibt, aber die Deinstallationsversion existiert:
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
Mein 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
}
}
Was fehlt mir?
Build
->Generate Signed APK
aus dem Menü zu verwenden.Antworten:
In der neuesten Version von Android Studio können Sie einfach Folgendes tun:
oder
aR
kurz. Dies wird eine nicht signierte Release-Apk erzeugen. Das Erstellen einer signierten Apk kann auf ähnliche Weise erfolgen oder Sie können Build -> Generate Signed Apk in Android Studio verwenden.Siehe die Dokumente hier
Hier ist mein build.gradle als Referenz:
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 { } }
quelle
Build Variants
Fenster, das sich normalerweise unten links im Fenster befindet :debug
aufrelease
shift+f10
Lauf!!Anschließend führt Android Studio die
assembleRelease
Aufgabe aus und installiert xx-release.apk auf Ihrem Gerät.quelle
Gradle muss nicht aktualisiert werden, um eine Release-Anwendung in Android Studio zu erstellen. Wenn Sie ein Eclipse-Benutzer waren, ist dies für Sie so einfach. Wenn Sie neu sind, befolgen Sie die Schritte
1: Gehen Sie zu "Erstellen" in der Symbolleiste. 2: Wählen Sie die Option "Signierte APK generieren ...".
3: Füllen Sie das geöffnete Formular aus und fahren Sie mit dem nächsten Schritt fort. 4: Wenn Sie bereits über .keystore oder .jks verfügen, wählen Sie diese Datei aus und geben Sie Ihr Passwort, Ihren Aliasnamen und das entsprechende Passwort ein. 5: Oder Sie haben keine .keystore- oder .jks-Datei und klicken dann auf die Schaltfläche Neu erstellen ... wie in Bild 1 gezeigt. Füllen Sie dann das Formular aus.
Der obige Prozess bestand darin, manuell zu erstellen. Wenn Sie möchten, dass Android Studio Ihre App automatisch signiert
In Android Studio können Sie Ihr Projekt so konfigurieren, dass Ihre Release-APK während des Erstellungsprozesses automatisch signiert wird:
Klicken Sie im Projektbrowser mit der rechten Maustaste auf Ihre App und wählen Sie Moduleinstellungen öffnen. Wählen Sie im Fenster Projektstruktur unter Module das Modul Ihrer App aus. Klicken Sie auf die Registerkarte Signieren. Wählen Sie Ihre Keystore-Datei aus, geben Sie einen Namen für diese Signaturkonfiguration ein (da Sie möglicherweise mehrere erstellen) und geben Sie die erforderlichen Informationen ein. Abbildung 4. Erstellen Sie eine Signaturkonfiguration in Android Studio.
Klicken Sie auf die Registerkarte Build-Typen. Wählen Sie den Release-Build aus. Wählen Sie unter Signaturkonfiguration die Signaturkonfiguration aus, die Sie gerade erstellt haben. Abbildung 5. Wählen Sie eine Signaturkonfiguration in Android Studio aus.
4: Das Wichtigste, was debuggable = false bei gradle macht.
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard- android.txt'), 'proguard-rules.txt' debuggable false jniDebuggable false renderscriptDebuggable false zipAlignEnabled true } }
Besuchen Sie für weitere Informationen unter info developer.android.com
quelle
Um die
installRelease
Aufgabe zu aktivieren , benötigen Sie einfach einesigningConfig
. Das ist alles.Von http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Android-tasks :
Folgendes möchten Sie:
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
So erhalten Sie die
installRelease
Aufgabe:Beispiel
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 } } }
quelle
gradle.properties
Verzeichnis ablegen oder im CI speichern.storeFile file(filename)
Dies ist ein Verfahren zum Konfigurieren der Run Release-Version
1- Ändern Sie die Build-Varianten in die Release-Version.
2- Öffnen Sie die Projektstruktur.
3- Ändern Sie die Standardkonfiguration in $ signingConfigs.release
quelle
So kompilieren Sie mit Release Build wie unten gezeigt:
quelle