Android Studio 多渠道打包和一键完成打包并签名

多渠道打包

方法1

第一步:添加渠道表示标签



完整截图

Android Studio 多渠道打包和一键完成打包并签名_第1张图片
这里写图片描述

第二步:添加渠道

productFlavors {
   xiaomi {}
   qihu360 {}
   baidu {}
   wandoujia {}
}


productFlavors.all {
   flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}

完整的截图

Android Studio 多渠道打包和一键完成打包并签名_第2张图片
这里写图片描述

添加完之后我们在点击一下Gradle 的构建按钮重新构建一下
这里写图片描述

第三步:测试
我们通过java代码获取到meta标签中的value来测试是否成功实现了多渠道打包:

public class MainActivity extends AppCompatActivity {

TextView tv_channel;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    tv_channel= (TextView) findViewById(R.id.main_tv_channel);
    tv_channel.setText(getApplicationMetaValue("UMENG_CHANNEL"));
}

private String  getApplicationMetaValue(String name) {
    String value= "";
    try {
        ApplicationInfo appInfo =getPackageManager()
                .getApplicationInfo(getPackageName(),
                        PackageManager.GET_META_DATA);
        value = appInfo.metaData.getString(name);
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    return value;
}
}

完整截图

Android Studio 多渠道打包和一键完成打包并签名_第3张图片
这里写图片描述

测试代码添加完毕之后,我们现在点击AS右侧的Gradle,我们此时就可以看到我们刚才添加的xiaomi、qihu360、baidu、wandoujia都出现了,如下图


Android Studio 多渠道打包和一键完成打包并签名_第4张图片
这里写图片描述

此时我们双击[installBaiduDebug],然后就可以看到如下结果:


Android Studio 多渠道打包和一键完成打包并签名_第5张图片
这里写图片描述

这说明你没有链接手机,链接上手机继续重新双击一下,结果如下
Android Studio 多渠道打包和一键完成打包并签名_第6张图片
这里写图片描述

这就说明你成功的安装到你的手机上了,此时不会自动给你打开app,需要手动打开,效果如下:
Android Studio 多渠道打包和一键完成打包并签名_第7张图片
这里写图片描述

然后我们在双击[installXiaomiDebug],然后看看


Android Studio 多渠道打包和一键完成打包并签名_第8张图片
这里写图片描述

效果
Android Studio 多渠道打包和一键完成打包并签名_第9张图片
这里写图片描述

到这里我们来做一个小结,这里我们在ManiFest中添加了meta标签、在gradle(app)中添加了渠道产品对应的渠道名称 ,最后我们测试多渠道打包,这里还最重要的一点就是我这里没有让大家去运行什么命令,全部是让大家点击来实现的,其实点击就是在运行命令:./gradew installXiaomiDebug
效果如下:
Android Studio 多渠道打包和一键完成打包并签名_第10张图片
这里写图片描述

一键完成打包并签名
正如标题所示,我们如果要打包所有的产品,肯定不能像刚才一样一个一个来打,那么现在来使用另外一个按钮(命令)assemble

Android Studio 多渠道打包和一键完成打包并签名_第11张图片
这里写图片描述

然后切换项目到Project视图,找到app>build>outputs>apk,结果如下我们看到所有版本的apk都有了,有debug版的,debug没有签名的,release没有签名的。


Android Studio 多渠道打包和一键完成打包并签名_第12张图片
这里写图片描述

如果我们现在只想打包所有的release版本怎么办呢?看下面的图,如果想打release版就双击[assembleRelease] ,如果想打所有的debug版本就双击[assembleDebug]


Android Studio 多渠道打包和一键完成打包并签名_第13张图片
这里写图片描述

小测试(我现在把apk目录下的所有apk都删除掉,然后只打所有release版本),效果如下:
Android Studio 多渠道打包和一键完成打包并签名_第14张图片
这里写图片描述

问题(所有的apk生成了,但是没有签名是发布不了的,肿莫办?)

点击项目架构按钮,如下:


这里写图片描述

然后点击app>Signing>+,然后填写上签名信息,最后点击OK


Android Studio 多渠道打包和一键完成打包并签名_第15张图片
这里写图片描述

我们做的上述操作其实就是在gradle文件中添加如下信息,不信你打开你的gradle看看:
signingConfigs {
    release {
        keyAlias '测试程序'
        keyPassword '证书密码'
        storeFile file('/Users/zsl/Downloads/android/appkey/test.keystore')
        storePassword '签名密码'
    }
}

完整截图

Android Studio 多渠道打包和一键完成打包并签名_第16张图片
这里写图片描述

此时我们把apk下面的apk文件删掉,然后双击[assembleRelease],结果发现还是没有签名啊


Android Studio 多渠道打包和一键完成打包并签名_第17张图片
这里写图片描述

这是因为我们只是配置了签名信息,但是我们没有给产品(apk)指定,我们只需要在Gradle文件中添加如下的代码就 ok了,我们来试试看看

//指定签名为release
signingConfig signingConfigs.release

完整截图

这里写图片描述

我们现在删掉apk文件夹下所有的apk,然后选择[assembleRelease]然后点击run按钮,如下图,这里的run会记录我们最近使用的run脚本名称,


Android Studio 多渠道打包和一键完成打包并签名_第18张图片
这里写图片描述

现在我们来看看apk目录下的安装包是否签名:


Android Studio 多渠道打包和一键完成打包并签名_第19张图片
这里写图片描述

总结
开始我们在manifast文件中添加了meta渠道标签,然后修改了gradle的文件添加了不同的渠道产品,最后我们在代码中读取了meta标签的value并且显示在一个textview上,我们做了测试。 接下来我们又添加了签名配置,最后我们指定了给release版本的签名,签名的名称是release,最后我们终于搞定了一键多渠道打包签名。

你可能感兴趣的:(Android Studio 多渠道打包和一键完成打包并签名)