1.与manifest文件做一些配置
当我们使用一些第三方的时候,例如百度地图,XX推送等,都需要在manifest文件中需要配置一些key及包名等信息。而我们测试版都会单独申请一个key来测试,那在上线的时候又要修改为正式版本,这个时候在打包之前就要记得修改,那就显得比较麻烦。这个时候我们就可以这样:
首先,我们在src目录下建一个文件夹:
将名字修改为测试的debug版,然后在build.gradle里:
buildTypes {
release {
***
***
manifestPlaceholders = [baiduMap_KEY: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
PACKAGE_NAME: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
HMS_appid: "xxxxxxx"]
***
}
debug {
***
applicationIdSuffix '.debug'//包名加上一个.debug后缀
manifestPlaceholders = [baiduMap_KEY: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
PACKAGE_NAME: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
HMS_appid: "xxxxxxx"]
***
}
}
然后在manifest里配置:
<meta-data
android:name="com.huawei.hms.client.appid"
android:value="appid=${HMS_appid}"/>
<provider
android:name="com.huawei.hms.update.provider.UpdateProvider"
android:authorities="${PACKAGE_NAME}.huawei.hms.update.provider"
android:exported="false"
android:grantUriPermissions="true"/>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="${baiduMap_KEY}"/>
这样,当我们测试的时候,就会用debug里的值,而正式版就会用正式版里的值
2.
打包的时候直接生成APK包的名字:日期+版本号
android {
......
//2.生成APK文件的名字
android.applicationVariants.all { variant ->
variant.outputs.all {
// outputFileName = rootProject.getName() + "-v" + defaultConfig.versionName + "-" + defaultConfig.versionCode + "-" + buildTime() + "-" + ".apk"
outputFileName = rootProject.getName() + "-v" + defaultConfig.versionName + "-" + buildTime() + ".apk"
}
}
}
再到最外层获取当前时间:
//APK生成时间
def buildTime() {
def date = new Date()
def formattedDate = date.format('yyyyMMdd')
}