设置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的签名文件相关推荐

  1. Intellij IDEA中 Debug 用法

    在Intellij IDEA中使用Debug 原文链接:http://www.cnblogs.com/chiangchou/ 目录 一.Debug开篇 二.基本用法&快捷键 三.变量查看 四. ...

  2. java中debug使用

    1. F8,表示当前实现继续运行直到下一个断点. 2. F5,表示进入当前方法. 3. F6,表示运行下一行代码. 4.F7,表示退出当前方法,返回到调用层. 一.J2SE中debug 设置条件断点 ...

  3. Vivado Turtorial 01 —— 使用vivado中debug功能(类似ISE中ChipScope)

    这是转载大佬的,也可以移植到其他开发板上. Vivado Turtorial 01 -- 使用vivado中debug功能(类似ISE中ChipScope) 1.基于BASYS3板子,有如下代码: m ...

  4. VC中debug和release版本的区别

    vc中debug和release的不同 收藏  在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是当 ...

  5. 设置div中的div居中显示

    设置div中的div居中显示 方法一. <div class='big'><div class='small'>box1</div></div>styl ...

  6. iOS开发UIlabel篇:iOS 10 3 Label设置的中划线突然失效了

    iOS10.3更新后,商城APP这样的UI:原价 "¥500 " 类似Label设置的中划线突然失效了. 这可能是苹果系统的一个bug. 根本原因:Label上的文字只要包含有&q ...

  7. Eclipse 中 Debug 模式跳转到 exitCurrentThread 的问题解决

    Eclipse 中 Debug 模式跳转到 exitCurrentThread 的问题解决 参考文章: (1)Eclipse 中 Debug 模式跳转到 exitCurrentThread 的问题解决 ...

  8. python代码怎么设置,如何设置PyCharm中的Python代码模版(推荐)

    在MacOs运行的PyCharm中,执行python文件,如果不指定python文件字符编码会报错: SyntaxError: Non-ASCII character "xe6" ...

  9. Visual Studio 中Debug模式和Release模式的区别

    引用文章:Visual Studio中Debug和Release的区别 https://www.cnblogs.com/darrenji/p/3907004.html

最新文章

  1. A-棋盘问题(dfs)
  2. 2021年你不能错过的DevOps趋势
  3. 关闭串口_USART串口通信,DMA方式,一分钟从入门到大师
  4. mysql select 1
  5. SSH整合JPA+Mysql
  6. 深度学习实战:基于bilstm或者dialated convolutions做NER
  7. 面对这么多困境,梅耶尔还能怎么应对?
  8. php谷歌收录接口,php实现查询百度google收录情况(示例代码)
  9. 复杂对象ibatis插入,属性为list,怎么一次性插入
  10. 浏览器打印设置横向打印_hp打印机共享怎么设置 hp打印机共享设置方法【详解步骤】...
  11. 【语音识别】基于matlab说话人识别系统【含Matlab源码 1704期】
  12. 【macOS付费软件推荐】第6期:Reeder
  13. 行政区划分与省直辖县级市
  14. win10关闭windows聚焦_win10 系统中的windows聚焦是什么意思 - 卡饭网
  15. 活法 - 第三章 磨练灵魂、提升心志
  16. html,实现心动的表白代码
  17. 如何使用css3做简单的动画效果?
  18. 编辑图片加文字的软件哪个好?这三个软件还不错
  19. 一步一步建立自己的神经网络
  20. 解除pdf文件打印限制

热门文章

  1. 多对一(Many2One)
  2. java动态代理实现与原理详细分析
  3. 高并发下的幂等策略分析
  4. 百度虚拟服务器上传,百度云虚拟主机好用吗?事实告诉你很坑
  5. DevTools 无法加载来源映射:无法加载 http://localhost:8082/axios.min.map 的解决方法
  6. Python基础知识-pycharm版-09
  7. 腾讯企业邮箱免费注册及登录方法
  8. 新华社科普漫画刷屏:一分钟看懂区块链
  9. 推荐使用:易企在线客服升级版
  10. 第四范式业界首推免费智能客服服务