Android开发必备技能——修改debug签名

前言

从事Android开发的小伙伴们,想必都会遇到这样的问题。当你的应用中需要集成百度地图、极光推送等第三方平台时,会去申请一个叫做AppKey的东西。与此同时,你得提供下应用签名信息的MD5或SHA1。然后就悲催的发现,只有用指定的签名文件打包时,该功能才能正常使用。如果你用的是开发工具的debug keystore签名信息,直接run一下就好,如果你用的是APP发布时候的keystore,每次测试时都得export 一个apk。心中一万只草泥马在奔腾的有木有?

楼主之前的小伎俩就是,去申请两个AppKey,分别对应debug keystore 和 release keystore。然后在心中默默地为自己的机智点个赞。然而一些比楼主更聪明的小伙伴发现,eclipse里面可以替换签名文件。于是满怀欣喜的去指定一个keystore,期待这样的画面(注意我此处的md5和sha1):

然而看到的是这样的:

小伙伴的内心应该是崩溃的。

签名文件(keystore)

在生成签名文件时候,输入的最重要的三条信息是:store passwordkey aliaskey password。有过用eclipse export apk 经验的童鞋应该很清楚这三个信息的作用。

此时应该很好理解之前的错误了,因为指定debug keystore时,eclipse根本没让输入以上三个信息。我也就呵呵一笑了……再看默认的debug keystore,会有一种错觉,该签名文件没有密码。

然而,事实并不是如我们所想的那样。默认的debug keystore的三个信息如下:

  1. store password:android
  2. key alias:androiddebugkey
  3. key password:android

并且,eclipse 的debug keystore只认含有这三个信息的keystore。

修改签名文件

已经知道了错误原因,那么接下来的解决方案只能尝试着去修改keystore里的这三个信息了。总不能去重新生成一个包含这个三个信息的keystore吧?然并卵……

修改之前,先查看一下keystore里的信息:

注意此处的MD5和SHA1与之前截图的一致。

查看keystore信息:keytool -list -v -keystore “keystore 文件” -storepass “keystore 密码”

将上述三个信息,分三步修改。比较坑爹的是,此处只能用命令玩了(修改之前,记得将原有的签名文件备份)。

  1. 修改store password。

    命令:keytool -storepasswd -keystore “keystore 文件”。

    会提示输入旧的密码,再输入两次新密码,此时将新密码改成android。

  2. 修改key alias。

    命令:keytool -changealias -keystore “keystore 文件” -alias “keystore 别名” -destalias “目的别名”。

    将目的别名改成:androiddebugkey,会提示输入第一个密码,就是第一步改过的android,第二个密码是之前的key password。

  3. 修改key password。

    命令:keytool -keypasswd -keystore “keystore 文件” -alias “指定修改密码的别名”

    由于,一个keystore中,可以存储多个alias,因此此处需要指定修改密码的alias(这里应当是androiddebugkey),然后需要输入store password:android(修改后的)。再输入旧的key password(之前只是修改了alias :androiddebugkey)。最后输入两次新的key password:android。

最后,再次查看签名文件信息:

输入的密钥库口令,已经是修改之后的android,alias 也已经修改成androiddebugkey。现在就可以放在eclipse里面替换了。

强大的AndroidStudio

看到这里,心很累了有木有?感觉eclipse是无比的坑爹。很好奇,AndroidStudio是怎么实现这个功能的,那么接下来的操作,也许会让你惊呆。

第一步,添加一个签名文件配置信息。选择keystore,并输入store password、key alias,key password。

第二步,在debug模式中,选择之前添加的签名文件配置信息。

也可以直接在gradle中配置。

然后,就没然后了。对Studio 只有一个评价,android开发神器。没有之一……

不说了,我去卸载eclipse。

时间: 2024-11-10 01:08:06

Android开发必备技能——修改debug签名的相关文章

Android 开发必备

Android 开发必备 http://www.androiddevtools.cn/ 收集整理Android开发所需的Android SDK.开发中用到的工具.Android开发教程.Android设计规范,免费的设计素材等. http://wear.techbrood.com Android developer 最新国内镜像:http://wear.techbrood.com,包含Android最新文档以及Android Wear,Android TV,Android Auto各个子领域方面

RecyclerView的使用(Android开发必备,替换掉ListView)

RecyclerView的使用(Android开发必备,替换掉ListView) 当有人看了你写的代码,说你现在还在使用ListView?是不是感觉快跟不上时代了啊!不错,今天就带给大家一个ListView的最新升级控件RecyclerView,Android 5.0推出的新控件,不过它在support-v7包,可以往下兼容,当你学会了RecyclerView之后,发现了它的强大,你就会替换到ListView和GridView了.    RecyclerView简介:          Recy

年终小盘点:这十八个Android开发必备知识点,你都知道吗?

本篇文章主要介绍?Android?开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 一.查看CPU温度二.开机向导调试相关方法三.查看APP启动时间四.判断 user,userdebug 版本的方法五.修改截屏默认存储路径六.解析 kernel dump 方法七.SPRD 默认打开 Ylog 以及dumpsys enable方法八.判断是否正在 monkey 测试的方法九.修改MTK log 模式的方法十.MTK平台只开Mobile log方法十一.SPRD平台 只开Android lo

这是一份集合一线大厂Android工程师必备技能体系+学习路线!

一份学习路线图,非常赞,推荐给大家. 目录 Java基础 Java Object类方法 HashMap原理,Hash冲突,并发集合,线程安全集合及实现原理 HashMap 和 HashTable 区别 HashCode 作用,如何重载hashCode方法 ArrayList与LinkList区别与联系 GC机制 Java反射机制,Java代理模式 Java泛型 Synchronized原理 Volatile实现原理 方法锁.对象锁.类锁的意义和区别 线程同步的方法:Synchronized.lo

Android开发时包名、签名、渠道和版本号的易坑点(转)

本文中总结一下 Android 开发中容易被忽视的一些注意事项吧: 一.谨慎选择包名 包名 (Package Name) 就相当于一款应用在户口本上登记的名字,是系统用来区分不同应用的字段.重复的包名会被认为是同一款应用,不能同时安装在一个系统里.一般来说,包名建议使用域名反序.比如豌豆荚的网站域名是 www.wandoujia.com,那么豌豆荚的一系列 Android 应用的包名就是 com.wandoujia.***.这种约定俗成的办法可以最大程度地避免“撞名”的事故. 案例一 某个手机

Android开发必备的21个免费资源和工具

转载自: http://blog.csdn.net/shimiso/article/details/6788375 Android移动开发平台现在不是一个“火”字能形容的,今年Android平台在市场占有率上相比去年取得的886%增长!如果我只看增长率,iPhone据统计才有61%的增长.而创造了山寨概念的联发科也在近期宣布将进军Android.这些事实可以给你关于两个平台流行度的印像,但是事实上,这些数据告诉了智能机开发员的谁才是真正的赢家.在时下,智能机越来越流行,因此成为一个快速增长的An

【Bugly 技术干货】Android开发必备知识:为什么说Kotlin值得一试

1.Hello, Kotlin Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 1.1 Kotlin的身世 写了许久Java,有没有发现其实你写了太多冗余的代码? 后来你体验了一下Python,有没有觉得不写分号的感觉真是超级爽? 你虽然勤勤恳恳,可到头来却被NullPointerException折磨的死去活来,难道就没有受够这种日子么? 直到有一天你发现自己已经写了好几十万行代

Android 开发必备知识:我和 Gradle 有个约会

腾讯Bugly特约作者:霍丙乾 0.讲个故事 0.1 Ant,我还真以为你是只蚂蚁 真正开始近距离接触编程其实是在2012年,年底的时候带我的大哥说,咱们这个 app 发布的时候手动构建耗时太久,研究一下 ant 脚本吧. 那个时候连 HashMap 都不知道是啥,可想开发经验几乎为零,一个小小的 ant 脚本看得我真是深深地感受到了这个世界充满的恶意.好在后来硬着头皮搞明白了什么 target 之类的鬼东西,不然就没有然后了. 0.2 Maven,你们真的会读这个单词么 Maven /`mei

Android开发实践:JNI函数签名生成器

"函数签名"在Android NDK开发中很常见,由于Java支持重载,仅靠函数名无法唯一确定一个方法.因此,JNI提供了一套签名规则,用一个字符串来唯一确定一个Java端定义的Native方法. 具体每一种Java数据类型对应的签名字符串如下所示(来自Oracle官网JNI的介绍):     原理其实并不复杂,每种基本类型对应一个单字符签名,而类则对应为"L"+类的全路径+";",数组类型则对应"["+元素类型的签名,函数的