Android Studio 批量打包,apk重命名

转载 2015年07月07日 09:20:08

项目切换到Android Studio有一段时间了,来聊聊多渠道打包的做法。


1.在productFlavors添加你需要的所有渠道


android {

    productFlavors {  //在这里添加你所有需要打包的渠道
        dev {}
        google {}
        myapp {}
        xiaomi {}
        app360 {}
        wandoujia {}
    }
    //添加如下代码
    productFlavors.all { flavors->
	flavors.manifestPlaceholders=[CHANNEL_VALUE:name]
    }
}



同时修改androidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="cn.op.zdf"
    android:versionCode="25"
    android:versionName="3.1.2">


	<application 
		android:name=".myApplication">
	
		<-- 在manifest中添加如下代码--->
		<meta-data
            		android:name="UMENG_CHANNEL"
            		android:value="${CHANNEL_VALUE}"/>


	</application>


</manifest>





OK,在命令行运行gradle build,大功告成。你可以去喝杯茶了。


2.如何给apk重命名

恩,发布产品的时候我们需要如下的命名规则 

release版本的命名规则如下:

产品名称-版本号-渠道号-sign-42.apk


在build.gradle中添加如下代码

//获取时间戳
def getDate() {
    def date = new Date()
    def formattedDate = date.format('yyyyMMddHHmm')
    return formattedDate
}
//从androidManifest.xml中获取版本号
def getVersionNameFromManifest(){
    def manifestParser = new com.android.builder.core.DefaultManifestParser()
    return manifestParser.getVersionName(android.sourceSets.main.manifest.srcFile)
}
android{

    //修改生成的apk名字
    applicationVariants.all{ variant->
        variant.outputs.each { output->
            def oldFile = output.outputFile
            def newName = '';
            if(variant.buildType.name.equals('release')){
//                println(variant.productFlavors[0].name)
                def releaseApkName = 'yjf-android-v' + getVersionNameFromManifest() + '-' + variant.productFlavors[0].name + '-sign-42.apk'
                output.outputFile = new File(oldFile.parent, releaseApkName)
            }
            if(variant.buildType.name.equals('beta')){
                newName = oldFile.name.replace(".apk", "-v" + getVersionNameFromManifest() + "-build" + getDate() + ".apk")
                output.outputFile = new File(oldFile.parent, newName)
            }
            if(variant.buildType.name.equals('debug')){

            }
        }
    }
}






哦,怎么取得版本号?怎么取得渠道号?怎么判断是不是release版本?上面的代码里面都有。

我的项目是从eclipse中迁移过来的,所以我是从manifest文件中读取的版本号,就是上面的那个函数 getVersionNameFromManifest()

如果你的版本号定义在build.gradle中,那defaultConfig.versionName就是你的版本号。

Android Studio 多渠道打包改名(超简单版)

最近因项目需要,需要统计各个市场的下载量和其他数据,所以在打包的时候就需要针对每个渠道单独打包,如果渠道太多(你敢信我们既然需要打好几十个渠道的包),一个个的打包那简直就是浪费生命,所以就有了本文的产...
  • a229413040
  • a229413040
  • 2016年03月28日 15:45
  • 2544

Android studio 打包apk如何重命名apk名称

在打包签名之前,在相应的module的build.gradle中添加如下代码 applicationVariants.all { variant -> variant.out...
  • jt_ontheway
  • jt_ontheway
  • 2016年01月08日 13:22
  • 2947

Android Studio中如何重命名文件

如图,选中你要重命名的文件(pic.PNG),在“Refactor”选项中有Rename,点击进行更名: 更名后你的工程中所有原来引用过的“pic”都将更换成你改的新名字。 快捷将:Shift+F...
  • u014581901
  • u014581901
  • 2016年02月29日 13:07
  • 7345

Android Gradle 多版本多APK打包,修改生成APK名称

前言在之前写过Android 多渠道打包的文章,可以发布不同APP商店的版本。有时候,我们也会遇到这样的需求,就是应用可能有一个测试版,线上版本等不同版本,可能不同的版本的一些配置信息不同,比如服务器...
  • aiynmimi
  • aiynmimi
  • 2017年04月01日 15:16
  • 4089

AndroidStudio怎么重命名包名

之前写项目的时候没有考虑到版本更新的情况,从而导致新版APP的包名和老版本的不一致,导致无法更新,重要的是新的APP已经接近完结了,那么我们只能去修改包名了。 步骤 全局替换你的包名AndroidSt...
  • z1353095373
  • z1353095373
  • 2016年10月12日 10:38
  • 1188

Android Studio 多渠道打包自命名

可参照: (1)http://blog.chinaunix.net/uid-20771867-id-5106723.html (2)http://www.th7.cn/Program/Androi...
  • iloveaman
  • iloveaman
  • 2015年10月30日 10:06
  • 2779

Android studio意外问题的解决方式

由于AndroidStudio的不成熟,在使用过程中经常出现“意外”的问题,下面介绍下偶遇到的问题,以及解决方法。 1.building “project name”gradle project in...
  • nacl025
  • nacl025
  • 2015年09月29日 11:34
  • 862

Android Studio 批量打包,apk重命名

项目切换到Android Studio有一段时间了,来聊聊多渠道打包的做法。 1.在productFlavors添加你需要的所有渠道 android { pr...
  • offbye
  • offbye
  • 2015年07月07日 09:20
  • 2457

Android Studio创建签名文件,打包apk,多渠道打包

1,点击标题栏上面的Build2,再点击Generate Signed APK3,如果已经有签名文件了,就直接用;如果第一次用就创建一个,点击Create new4,填好下面的信息,创建签名文件5,再...
  • qq_32519693
  • qq_32519693
  • 2017年04月25日 18:08
  • 1024

实现Android apk 版本号自动生成和打包批量重命名功能

一、实现版本号自增功能我们发版本供测试组时常以日期命名版本号,为了免除手动更新版本号的麻烦,实现版本号的自增功能:1.这里在app的build.gradle的根域中定义生成版本号的函数:def ver...
  • KevinsCSDN
  • KevinsCSDN
  • 2016年06月17日 11:07
  • 863
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Studio 批量打包,apk重命名
举报原因:
原因补充:

(最多只允许输入30个字)