1.注冊友盟賬號亲桥,使用友盟統(tǒng)計服務(wù)創(chuàng)建應(yīng)用逝钥,獲取appkey;
2.在build.gradle中添加對友盟庫的依賴(android studio環(huán)境下):
compile 'com.umeng.analytics:analytics:latest.integration' //友盟分析
3.在manifest .xml文件聲明appkey, 以及渠道占位符 ;
<meta-data
android:name="UMENG_APPKEY"
android:value="your appkey"
></meta-data> <!-- 友盟 app key-->
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}"
></meta-data> <!-- 渠道號-->
4.在gradle 中動態(tài)替換掉占位符value 即可沪么;代碼如下:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// 輸出apk名稱為appname_v1.0_2017-02-13_09_wandoujia.apk ,此處可自定義打包后的名字
// 下面的appname改為你自己的app name
def fileName = "keeplearn${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
}
注:在使用此配置的時候上忍,應(yīng)該放置在調(diào)用此配置代碼之前携御,build跟程序代碼中編譯順序不一樣
//添加簽名文件配置
signingConfigs{
//為release包添加簽名文件配置
release{
keyAlias 'keeplearn'
keyPassword 'yourpwd'
storeFile file('your jks file address')
storePassword 'yourpwd'
}
debug{}
}
注:這個方法的使用注意目錄結(jié)構(gòu), 放在android{} 之上
def releaseTime() {
return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}
//此處添加你要上傳的應(yīng)用市場
productFlavors{
xiaomi{
manifestPlaceholders=[UMENG_CHANNEL_VALUE: "xiaomi"]
}
wandoujia{
manifestPlaceholders=[UMENG_CHANNEL_VALUE: "wandoujia"]
}
}
5.在控制臺使用 ./gradlew assembleRelease 自動打出所有渠道的包苔可,在project狀態(tài)下的目錄結(jié)構(gòu)outputs/apk 可以看到打包結(jié)果缴挖。控制臺成功打包后的截圖如下:
參考資料:
http://stackoverflow.com/questions/22790801/android-gradle-signingconfig-error
如有問題可留言焚辅,將及時回復(fù)映屋,have fun ...