Android Studio 多渠道打包, 自定义APK名称

使用Android Studio 有一段时间了, 让我总结下使用感受,那就是 “爽”!!!

由于公司项目android版渠道比较多, 所以打包的时候一般都会使用多渠道打包。而AS 为我们提供了很方便很牛逼的脚本工具Gradle,废话不多说了

首先在项目底下的 build.gradle 文件中的 android 节点 添加 productFlavors 节点 , 如下

// 渠道列表
productFlavors {

    pc {
        manifestPlaceholders = [CHANNEL_NAME: "pc"]
    }

    s360{
        manifestPlaceholders = [CHANNEL_NAME: "s360"]
    }
}

其中 CHANNEL_NAME 是 AndroidManifest.xml 中添加 umeng 渠道占位符

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

同时也在android 节点下 添加 以下脚本

//PK打包重新命名
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def appName = 'your app name'
        def buildName

        variant.productFlavors.each { product ->
            buildName = product.name
        }

        output.outputFile = new File(output.outputFile.parent, appName + "_" + getVersionNameFromManifest() + "_" + buildName + ".apk");
    }

}

因为我们的版本号一般配置在AndroidManifest.xml 中, 所以利用 getVersionFromManifest() 方法获取其中的版本号(versionName)

//从androidManifest.xml中获取版本号
def getVersionFromManifest() {
    def manifestParser = new com.android.builder.core.DefaultManifestParser()
    return manifestParser.getVersionName(android.sourceSets.main.manifest.srcFile)
}

好了, 直接 Build->Generate Signed APK ,然后选择你要打包的渠道和目录,搞定~~~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容