根据flavors设置buildType中debug的签名文件
设置buildType中debug的签名文件(不使用debug默认的签名文件)
前言:android studio运行编译安卓项目,其debug模式会使用默认的keystory。通过获取flavor信息设置签名文件,在debug模式下是不生效的,它仍然使用默认的keystory。此时通过studio安装至客户端的apk签名信息并不是我们所需要的。
而我们往往需要给每一个包指定签名文件。
这个默认签名(keystore)是不需要密码的,它的默认位置在 $HOME/.android/debug.keystore,如果不存在Android studio会自动创建它。
使用场景: 根据需求,给不同的包设置对应的签名文件。
flavors 和 buildTypes设置。
productFlavors {_360 {}anzhi_oas {}huawei_fuming {}}
buildTypes {release {}debug{}pre{}}
flavor + BuildType
给不同的包设置对应的签名文件(每个人根据自己需求来做)
//批量配置//获取flavor集合def flavors = getProductFlavors()for (int i = 0; i < flavors.size(); i++) {//获取flavor对象def at = flavors.getAt(i)//获取flavor名String name = at.getName().toString()if (name.contains("XXXXX")) {SigningConfig fumingConfig = getSigningConfigs().findByName("customsigning1")at.setSigningConfig(fumingConfig)} else {at.setSigningConfig(signingConfigs.getByName("customsigning2"))}}
个人认为buildType不同,不影响签名文件。因为只要包名一样,签名文件就应该是一样的。
需要解决的问题:解决在debug模式下,使用设置的签名文件,而不是默认的签名文件。
有的人会讲到在buildType的debug中设置签名。如下:
buildType{debug{signingConfig signingConfigs.customsigning1}}
这样是可以替换掉默认签名的,但有局限性,因为所有Debug模式都使用了这个签名。如果有马甲包,有多个flaovrs就不适合了。一般来说同一个包名的apk使用同一个签名。
通过flaovrs信息来设置签名。但非常不幸的是,给所有flavor设置对应签名后,在debug模式下不生效,仍然使用的是默认签名,在非dubug模式(如release pre等)都可以生效。这是因为只有debug有默认的签名文件。
重点:
如上在flavors集合中设置签名文件,同时在debug中设置 signingConfig null 即可。
debug模式的签名文件不会再使用默认的签名文件,会使用flavor设置的签名文件。
buildTypes {debug {signingConfig null}
....
}
备注:将debug模式的签名文件设置与其它buildType模式相同,有利于开发工作。如果不一致会让Debug release pre(预发布) 等版本在覆盖安装时会先卸载掉已安装的app,才能再安装,这是因为debug模式特有的默认keystory导致的。这样就会让你重新登录,重新进入欢迎界面等等一系列首次安装工作,长时间这样不是个事啊。。。。
根据flavors设置buildType中debug的签名文件相关推荐
- Intellij IDEA中 Debug 用法
在Intellij IDEA中使用Debug 原文链接:http://www.cnblogs.com/chiangchou/ 目录 一.Debug开篇 二.基本用法&快捷键 三.变量查看 四. ...
- java中debug使用
1. F8,表示当前实现继续运行直到下一个断点. 2. F5,表示进入当前方法. 3. F6,表示运行下一行代码. 4.F7,表示退出当前方法,返回到调用层. 一.J2SE中debug 设置条件断点 ...
- Vivado Turtorial 01 —— 使用vivado中debug功能(类似ISE中ChipScope)
这是转载大佬的,也可以移植到其他开发板上. Vivado Turtorial 01 -- 使用vivado中debug功能(类似ISE中ChipScope) 1.基于BASYS3板子,有如下代码: m ...
- VC中debug和release版本的区别
vc中debug和release的不同 收藏 在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是当 ...
- 设置div中的div居中显示
设置div中的div居中显示 方法一. <div class='big'><div class='small'>box1</div></div>styl ...
- iOS开发UIlabel篇:iOS 10 3 Label设置的中划线突然失效了
iOS10.3更新后,商城APP这样的UI:原价 "¥500 " 类似Label设置的中划线突然失效了. 这可能是苹果系统的一个bug. 根本原因:Label上的文字只要包含有&q ...
- Eclipse 中 Debug 模式跳转到 exitCurrentThread 的问题解决
Eclipse 中 Debug 模式跳转到 exitCurrentThread 的问题解决 参考文章: (1)Eclipse 中 Debug 模式跳转到 exitCurrentThread 的问题解决 ...
- python代码怎么设置,如何设置PyCharm中的Python代码模版(推荐)
在MacOs运行的PyCharm中,执行python文件,如果不指定python文件字符编码会报错: SyntaxError: Non-ASCII character "xe6" ...
- Visual Studio 中Debug模式和Release模式的区别
引用文章:Visual Studio中Debug和Release的区别 https://www.cnblogs.com/darrenji/p/3907004.html
最新文章
- A-棋盘问题(dfs)
- 2021年你不能错过的DevOps趋势
- 关闭串口_USART串口通信,DMA方式,一分钟从入门到大师
- mysql select 1
- SSH整合JPA+Mysql
- 深度学习实战:基于bilstm或者dialated convolutions做NER
- 面对这么多困境,梅耶尔还能怎么应对?
- php谷歌收录接口,php实现查询百度google收录情况(示例代码)
- 复杂对象ibatis插入,属性为list,怎么一次性插入
- 浏览器打印设置横向打印_hp打印机共享怎么设置 hp打印机共享设置方法【详解步骤】...
- 【语音识别】基于matlab说话人识别系统【含Matlab源码 1704期】
- 【macOS付费软件推荐】第6期:Reeder
- 行政区划分与省直辖县级市
- win10关闭windows聚焦_win10 系统中的windows聚焦是什么意思 - 卡饭网
- 活法 - 第三章 磨练灵魂、提升心志
- html,实现心动的表白代码
- 如何使用css3做简单的动画效果?
- 编辑图片加文字的软件哪个好?这三个软件还不错
- 一步一步建立自己的神经网络
- 解除pdf文件打印限制