android 项目实用虚拟机Gradle命令打包,友盟多渠道打包,签名文件不同等。

实用虚拟机打包的签名文件地址是虚拟机的。这样就不会关联到你电脑上的其他项目了。如果一个项目被下架,也能保证其他项目的安全。  刚学完虚拟机Gradle命令打包。做个记录,以免忘的太快。

一:下载虚拟机,安装好系统。  我用的是vm+w7

二:设置好共享文件目录。  最好就是项目所在盘符  D盘F盘这种意思。

三:安装好JDK  。然后把你本地的SDK,和你版本的Gradle文件都  复制到你共享到的盘中。记住这个时候把你项目的SDK  改成你共享盘中的SDK位置。这个很简单。AS里的SDKmanager里点开就是。

四:设置环境变量

C:\ProgramFiles\Java\jdk1.8.0_121\bin;F:\android\Sdk\platform-tools;F:\android\Sdk\tools;F:\android\.gradle\wrapper\dists\gradle-4.4-all\9br9xq1tocpiv8o6njlyu5op1\gradle-4.4\bin

以分号为准的话  是4个。第一个JDK  第二个和第三个是SDK的。第四个的Gradle的   格式如上。 换成你自己的。直接复制到path后面就行。记得先加个分号

五:生成签名文件   F:\android\.gradle\wrapper\dists\gradle-4.4-all\9br9xq1tocpiv8o6njlyu5op1\gradle-4.4\bin  在对应的目录下 shift+右键。开启命令行模式。复制如下命令

keytool -genkey -alias 你的签名文件名称-keyalg RSA -validity 36500 -keystore 你的签名文件名称

然后一堆  直接回车。 出现Y。N选择的时候选Y  回车  最好就生成了一个签名文件

六:复制签名文件,到你项目的relase文件下。找不到就自己创一个。和lib目录同级

七:biuld.gradle配置

android {
    compileSdkVersion 28
    signingConfigs {
        release {
            keyAlias 'cash'
            keyPassword 'cash123456'
            storePassword 'cash123456'
            storeFile file('release/cash')
        }
       //第二版改为新代码包的签名信息
        XXXX2 {
            keyAlias 'hbbt'
            keyPassword 'hbbtapp'
            storePassword 'hbbtapp'
            storeFile file('release/hbbt.jks')
        }
    }
    defaultConfig {
        applicationId "包名"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 2
        versionName "1.0.2"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        manifestPlaceholders = [
                umeng  : project.umengKey,
                channel: project.channel,
        ]
        flavorDimensions "versionCode"
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
            shrinkResources false
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    // 多渠道打包
    productFlavors {
        //原始包
        cashinstallment {
            applicationId "包名"
            versionCode 101
            versionName "1.0.1"
            manifestPlaceholders = [
                    umeng  : "你的当前包的友盟key,例如5cc159410cafb2cf370",
                    channel: "你的当前包的友盟渠道,例如GooglePlay",
            ]
        }
        //第二版改为新代码
        XXXX2 {
            applicationId "包名"
            versionCode 103
            versionName "1.0.3"
            manifestPlaceholders = [
                    umeng  : "你的当前包的友盟key,例如5cc159410cafb2cf370",
                    channel: "你的当前包的友盟渠道,例如GooglePlay",
            ]
           //第二版改为新代码
            signingConfig signingConfigs.XXXX2
        }
    }
    //生成的文件名带版本号
    android.applicationVariants.all {
        variant ->
            variant.outputs.all {
                def date = new Date().format("yyyyMMdd", TimeZone.getTimeZone("GMT+08"))
                outputFileName = "${variant.productFlavors[0].name}_v${variant.versionName}_${date}.apk"
            }
    }
}

AndroidManifest中配置友盟的Kay和渠道的写法为:

<meta-data
        android:name="UMENG_APPKEY"
        android:value="${umeng}"/>
<meta-data
        android:name="UMENG_CHANNEL"
        android:value="${channel}"/>

八:开始打包。在项目文件下  命令行输入gradle assembleRelease命令开始打包。   如果中途报错  可能需要翻墙。具体的课百度;。

猜你喜欢

转载自blog.csdn.net/qq_38679144/article/details/80833796