前言:不知为何,一直无法直接用Gradle生成正式签名的apk文件。一种稍显迂回的办法就是先生成.jks签名文件,然后再生成apk文件。若有更简易方法,请在评论区告知,谢谢
一、使用Android Studio生成签名文件
在app下build.gradle文件中,buildTypes闭包默认是这样的:
buildTypes {
//打包配置
release {
//是否混淆
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
打开Android Studio,点击工具栏上面的“Builder”->Generate Signed Bundle/APK(盗图呵呵呵)
弹出一个对话框
App Bundle文件用于上架Google Play商店的,缺点是不能直接安装到手机上,也不能用于除上架Google Play之外的其它应用商店。这里选择创建 APK 文件
点击Create new…,按要求填写即可。这里将.jks文件放在c:\User\aa目录下
这个错误忽略,直接点ok
我们的需求仅仅是生成签名文件,选debug就可。V1、V2都勾选上,表示会使用同时兼容新老本系统的签名方式
点击Finish
在c:\User\aa目录下生成了签名文件:
二、使用Gradle生成正式签名的APK文件
修改app下build.gradle文件。增加了签名配置signingConfigs ,buildTypes也增加了debug闭包。这种配置可使debug、release签名始终保持一致
//签名配置
signingConfigs {
config {
keyAlias 'cat'
keyPassword '123456'
storeFile file('C:/Users/aa/mychat.jks')
storePassword '123456'
}
}
buildTypes {
//打包配置
release {
//清理无用资源
//shrinkResources true
//是否启动ZipAlign压缩
zipAlignEnabled true
//是否混淆
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
//签名
signingConfig signingConfigs.config
}
debug {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
//签名
signingConfig signingConfigs.config
}
}
必要时可以clean下工程
双击右侧工具栏的Gradle->项目名->app->Tasks->build->assemble, 生成APK文件。它会同时生成debug和release 两个版本的apk。
assemble执行成功:
APK文件会自动生成在app/build/outputs/apk目录下:
分别生成了两个版本的apk文件:
OK,收工!