实用虚拟机打包的签名文件地址是虚拟机的。这样就不会关联到你电脑上的其他项目了。如果一个项目被下架,也能保证其他项目的安全。 刚学完虚拟机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命令开始打包。 如果中途报错 可能需要翻墙。具体的课百度;。