如何设置gradle和android studio来进行发布构build?
我想要构buildAndroid应用程序并开始签名。 为此,我需要有发布版本的apk。 谷歌文档build议只有Eclipse和ant的方式来发布版本: http : //developer.android.com/tools/publishing/app-signing.html#releasecompile
不过我找不到如何强制gradle build版本的apk。 build.gradle
不给任何提示。 gradlew tasks
build议,没有安装Releaseconfiguration,但存在卸载版本:
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 } }
我错过了什么?
在android studio的最新版本中,你可以这样做:
./gradlew assembleRelease
或简称aR
。 这将产生一个未签名的发行版apk。 构build一个签名的apk可以做同样的事情,或者你可以在Android Studio中使用Build – > Generate Signed Apk。
看到这里的文档
这是我的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 { } }
- 打开
Build Variants
- 设置
debug
release
-
shift+f10
跑!
那么Android Studio将执行assembleRelease
任务并将xx-release.apk安装到您的设备上。
没有必要更新gradle在Android studio中进行发布应用程序。如果你是eclipse用户,那么它对你来说会很容易。 如果你是新的,然后按照步骤
1:转到工具栏部分的“Build”。 2:select“生成签名的APK …”选项。
3:填写打开的表格,然后转到下一步4:如果你已经有.keystore或者.jks,那么select那个文件,input你的密码和别名以及相应的密码。 5:或没有.keystore或.jks文件,然后点击创build新…button,如图1所示,然后填写表格。
上面的过程是手动进行构build。 如果你想android studio自动签名你的应用程序
在Android Studio中,您可以configuration您的项目以在构build过程中自动签署您的发行版APK:
在项目浏览器上,右键单击您的应用程序,然后select打开模块设置。 在“项目结构”窗口中,select模块下的应用程序模块。 点击签名标签。 select您的密钥库文件,input此签名configuration的名称(因为您可以创build多个),并input所需的信息。 图4.在Android Studio中创build一个签名configuration
点击Build Types标签。 select发布版本。 在Signing Config下,select您刚创build的签名configuration。 图5.在Android Studio中select一个签名configuration。
4:最重要的是在gradle中debuggable = false。
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-任务; :
最后,只要插件可以安装(需要签名),插件就会为所有的构buildtypes(debugging,发布,testing)创build安装/卸载任务。
这是你想要的:
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 } } }