Android Gradle打包

来源:互联网 发布:javascript 转义符 编辑:程序博客网 时间:2024/06/08 09:55

1.在app的Gradle的Android标签下添加一个signingConfigs标签,如下所示:

  signingConfigs {        release {            storeFile file(KEY_PATH)//签名文件的路径            storePassword KEY_PASS//签名密码            keyAlias ALIAS_NAME//别名            keyPassword ALIAS_PASS//别名密码            v2SigningEnabled false        }    }

2.上面的大学字母都是一些引用,如果直接写在文件中不太安全,所有具体的内容写在gradle.properties文件中,如下所示:

KEY_PATH=C:/xxxxKEY_PASS=xxxxALIAS_NAME=xxxxALIAS_PASS=xxxx

3,对signingConfigs的引用

 buildTypes {        release {            minifyEnabled true            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'            signingConfig signingConfigs.release        }    }

4、多渠道打包需要如下配置:

  //多渠道种类,只是一个示例   productFlavors {        //豌豆荚        wandoujia {            //AndroidManifest.xml中定义的meta-data标签,需要和meta-data中的android:value="${CHANNEL}对应            manifestPlaceholders = [CHANNEL: "wandoujia"]            //Build中生成一个字符用来区分不同渠道的不同策略实现            buildConfigField "String", "CHANNEL", "\"wandoujia\""        }    }

5,対生成apk包的命名(在android标签下):

 //重命名apk文件def String apkName = "Alpha" + "_" + defaultConfig.versionName + "_" + defaultConfig.versionCode + "_dev" as String    applicationVariants.all { variant ->        if (variant.buildType.name.equals('release') || variant.buildType.name.equals('debug')) {            variant.outputs.each { output ->                def appName = 'Label'                def oldFile = output.outputFile                def buildName = ''                variant.productFlavors.each { product ->                    //循环取到的是productFlavors的每个名字,也是区分名字的关键                    buildName = product.name                }                def releaseApkName = appName + "_" + buildName + "_${apkName}.apk"                output.outputFile = new File(oldFile.parent, releaseApkName)            }        }    }