Gradle配置多渠道打包详解,让你不再担心多渠道打包!!!

简言:

       最近一直没有更新博客,因为刚刚换了工作,新工作任务较多,导致一直没有更新博客,换了一个新的环境,接触的知识也变得更多了,之前一直做公司自己的线下产品,如何多渠道打包忘的差不多了,最近新公司项目上线,又得重新整理这个知识点,正好分享一下,如何用Gradle配置多渠道打包,(现在公司项目好多啊,表示好累啊!!!)下面分享一下通过Gradle打包的详细步骤:

 1.配置Debug的生产签名,方便调试

   // 配置Debug的生产签名,方便调试
    signingConfigs {
        release {
            storeFile file("签名文件名称.key")
            storePassword "签名文件密码"
            keyAlias "别名"
            keyPassword "签名文件密码"
        }
        debug {
            storeFile file("签名文件名称.key")
            storePassword "签名文件密码"
            keyAlias "别名"
            keyPassword "签名文件密码"
        }
    }

如果没有签名文件怎么办?我觉得android开发应该都会配置了,生成签名步骤:

1.点击build

2. 选择Generate sigend Bundle/apk...

3.弹出如下窗口,选择apk 点击next.

4.我这是有签名文件的,选择了签名文件,加上上边配置的密码以及别名,如果没有选择Create new 按钮:

5.这里输入别名,设置密码,选择别名位置等信息,就会生成一个新的别名,我就不详细说这里了,毕竟这个不是今天的主要任务;

到这里如何生成一个签名文件就讲解完毕了。

2.添加你想要的生成apk的渠道:

/*配置渠道*/
    productFlavors {
        android {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "android",
                                    app_name: "您的app名称"]
        }
        huawei {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "huawei",
                                    app_name: "您的app名称"]
        }
        xiaomi {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi",
                                    app_name: "您的app名称"]
        }
        vivo {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "vivo",
                                    app_name: "您的app名称"]
        }
        oppo {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "oppo",
                                    app_name: "您的app名称"]
        }
        
        baidu {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu",
                                    app_name: "您的app名称"]
        }
    }

3.通过Gradle生成apk名称,带有渠道名称,时间戳,版本号,版本名称等信息:

 android.applicationVariants.all { variant ->
        variant.outputs.all {
            outputFileName = defaultConfig.applicationId + "_" +
                    defaultConfig.versionName + "_" + defaultConfig.versionCode + "-" +
                    new Date().format("yyyyMMddHHmm") + "_" + productFlavors[0].getAt("name") +
                    ".apk"
        }
    }

4.在AndroidManfist.xml文件中引用Gradle的app名称,如下图所示:

5.如果做友盟统计,需要添加如下代码,获取Gradle中渠道名称:

 // 获取 UMENG_CHANNEL 对应的value
    public static String getChannelValue (Context context){
        try {
            ApplicationInfo info = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
            String value = info.metaData.getString("UMENG_CHANNEL");
            return value;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return "";
    }

6.打包,根据自己需要的渠道进行打包,(上方提供的签名方式就是打包方式,不详细讲解)

点击Finish进行打包,如下图就是打包结果:

到这里Gradle配置的多渠道打包就结束了,希望能帮助到您,如果帮助到您,帮忙点点关注。我会继续为大家分享更多的福利。。。

猜你喜欢

转载自blog.csdn.net/wk_beicai/article/details/109489830