发表于: 2019-01-07 23:20:41
0 826
今天完成的事情
使用Gradle生成带有正式签名的APK
编辑app/build.gradle,在android闭包中添加如下文件
signingConfigs {
config {
storeFile file("C:/Users/ForrestSu/DocumentsForrestSu.jks")
storePassword password
keyAlias forrestsu
keyPassword password
}
}
这里在signingConfig闭包中添加了一个config闭包,接着在config闭包中配置keystore文件的各种信息,storeFile用于指定keystore文件的位置,storepassword用于指定密码,keyAlias用于指定别名,keypassword用于指定别名密码。
将签名文件设置号后,在需要生成正式版APK的时候应用这个配置即可。
在app/build.gradle下的release闭包中应用刚才配置的签名信息来进行签名。
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
}
配置完成后就可以开始生成APK了,点击右侧工具栏Gradle > 项目名 > app > Task build,
其中assembleDebug使用来生成测试版的APK,assembleRelease用于生成正式版的APK,assemble用于同时生成测试版和正式版APK。在生成APK之前,线点击clean来清理当前项目。
需要注意的是,目前keystore文件的所有信息都是以明文的形式直接配置在build.gralde中的,这样不安全。其实可以将这些敏感数据配置在一个独立的文件中。
Android Studio项目的根目录下有一个gradle.properties文件,它是专门用来配对全局键值对数据的,在gradle.properties文件中添加如下内容:
KEY_PATH=C:/Users/ForrestSu/DocumentsForrestSu.jks
KEY_PASS=password
ALIAS_NAME=forrestsu
ALIAS_PASS=password
修改buidl.gradle
signingConfigs {
config {
storeFile file(KEY_PATH)
storePassword KEY_PASS
keyAlias ALIAS_NAME
keyPassword ALIAS_PASS
}
}
将gradle.properties文件从git版本控制中排除。
生成多渠道APK文件
举例,生成360和百度两个渠道的APK,修改app/build.gradle
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.forrestsu.microchat"
minSdkVersion 17
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
flavorDimensions "1"
}
productFlavors {
qihoo {
applicationId "com.example.forrestsu.microchat.qihoo"
}
baidu {
applicationId "com.example.forrestsu.microchat.baidu"
}
}
这里覆写了applicationId属性,其实还可以覆写defaultConfig中的任何一个属性
在app/src目录下新建一个baidu目录,在baidu目录下新建java和res目录,这样就可以在里面编写百度渠道特有的功能了。
完成后,右侧Gradle Task列表中会多出几个task,如果要生成360渠道的APK文件,就执行assembleQihoo,如果要生成百度渠道的Apk文件,就执行assembleBaidu,如果要一次生成所有渠道的文件,就执行assembleRelease。
收获
使用Gradle生成带有正式签名的APK
生成多渠道APK文件
评论