关闭

Android调试大法 自定义IDE默认签名文件

标签: keystore应用签名修改签名密码androidIDE默认签名文件
5571人阅读 评论(13) 收藏 举报
分类:

版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com

Android调试大法之自定义IDE默认签名文件,你是否为调试第三方SDK时debug签名和release签名发生冲突而烦恼?你是否在debug时第三方功能测试通过,而release时无法使用?

如果你没有遇到我说的问题,那么我举几个例子。

  1. 微信支付、微信登录、微信分享,debug时调试通过,release时调不起微信?
  2. 百度地图、高德地图,要不停的切换debug签名、release签名的hash值很麻烦?

上面的这些问题归根结底原因是我们开发的时候直接运行,使用的是默认的debug.keystore这个签名文件,而我们打包后正式环境用的是我们自定义的xxx.keystorexxx.jks等签名文件,两个文件的hash值不同。

而一般第三方的SDK都是通过识别我们应用的包名和签名的hash来判断是否在他们平台注册过,是否是官方正版应用等,如果验证不通过,自然不能调起第三方的的app了。

今天的文章内容不多,只需要3分钟就可以看完,同时保证可以解决上述因为签名引起的问题。


解决问题的原理

原理就是把我们正式的签名文件的keystore密码、aliasalias密码都修改成与Android默认签名debug.keystore的相同,并且在EclipseAndroidStudio中指定我们默认debug签名文件路径,此时当我们直接运行项目时ide将直接用我们指定的这个签名文件,此时我们debug时的签名和正式发布的签名一致了,所以在调试的时候什么微信、第三方支付都不存在签名错误等云云。

Android默认签名文件debug.keystore的keystore密码、alias、alias密码分别是:

  • keystore密码:android
  • alias:androiddebugkey
  • alias密码:android

所以接下来修改正式签名的这个三个属性。

修改keystore密码 alias alias密码

特别注意:修改签名文件密码、alias、alias密码相当于破坏了这个文件,所以我们修改的时候一定要copy一个签名文件出来,然后修改这个copy出来的文件的上述三个属性。

修改keystore密码 alias alias密码

假设我们的签名文件叫nohttp.jks或者nohttp.keystore,反正就是你创建的那个签名文件。

  • 第一步,打开命令行,进入你的keystore文件所在的文件夹,比如我的nohttp.jks在桌面:
    进入keystore的文件夹

  • 第二步,修改keystore密码,在命令行输入:
    keytool -storepasswd -keystore nohttp.jks
    其中nohttp.jks是签名文件的全名,回车后会提示输入证书的当前密码,然后要求输入新密码、重复输入新密码。当前密码当然只有你知道了,新密和重复密码按照开头讲的,必须输入android

  • 第三步,修改keystorealias,在命令行输入:
    keytool -changealias -keystore nohttp.jks -alias <alianame> -destalias androiddebugkey
    其中nohttp.jks是签名文件的全名,<alianame>是证书中当前的alias的名字,-destalias后面跟的是要修改成的alias的名字,按照开头说的,这里必须改为androiddebugkey;比如我的alias的名字是nohttp,那么我的完整的命令就是:
    keytool -changealias -keystore nohttp.jks -alias nohttp -destalias androiddebugkey
    回车后会提示输入keystore的密码(上面已经修改为android)和当前alias的密码(这个只有你知道)。

  • 第四步,修改alias的密码,在命令行输入:
    keytool -keypasswd -keystore nohttp.jks -alias androiddebugkey
    其中nohttp.jks是签名文件的全名,回车后会提示输入keystore密码(上面已经修改为android),alias密码(这个只有你知道),然后提示输入新alias密码,按照开头讲的,必须输入android

到这里修改alias属性的操作全部完成,接下来在EclipseAndroidStuio中配置默认的debug keystore为我们修改属性后的这个keystore

给开发工具配置默认的keystore

我们常用的Android IDE就是ADTAndroidStudio了,下面提供两个IDE配置默认debug keystore的发那个方法。

AndroidStudio

如果你用的是AndroidStudio,首先我们把之前的修改之前的keystore和修改过的debug keystore都拷贝一份到项目根目录。

然后需要在项目的app module下的gralde文件做配置:

android {
    ...

    defaultConfig {
        applicationId ...
        ...
    }

    signingConfigs {
        // debug时的默认签名配置,这里的密码等信息是刚我们修改后的。
        debug {
            storeFile file("../sign_store_debug.jks") // 刚修改过的默认debug keystore路径。
            storePassword 'android' // 默认debug keystore的密码。
            keyAlias 'androiddebugkey' // 默认debug keystore的alias。
            keyPassword 'android' // 默认debug keystore的alias的密码。
        }

        // 和上面相同,不过是正式文件的路径和密码,我用*代替了。
        release {
            storeFile file("../sign_store_release.jks")
            storePassword ***
            keyAlias ***
            keyPassword ***
        }
    }

    buildTypes {
        ...
    }
}

下面是我配置的截图:
AndroidStudio配置截图

大多数时候我们会把release下的路径、密码都写在local.properties中,然后gralde动态读取,因为local.properties文件是不会传到版本管理服务器的。

Eclipse + ADT

如果你用的ADT,那么在Eclipse的菜单栏点击Window-Preferences,然后左侧选中Android-Build,在右侧出来的界面中Customer debug keystoreBrowser后选择刚才我们修改后的keystore,然后确定即可。

Eclipse配置debug keystore演示

到此为止,修改IDE默认签名文件就都完成了,还在等什么,快去试试配置你的应用试试吧。还有还有,最后插一句,欢迎加入我博客左侧的交流群来开车/害羞。


版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com

8
3
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

android studio设置指定的签名文件

不废话,直接看怎么弄,下面两张图你就指定啦配置签名文件和密码(前提你已经有自己的签名文件keystore或者jks)将上面的签名配置设置到你的Build Types去这一步已经完成啦,写完代码构建生成...
  • jackzhouyu
  • jackzhouyu
  • 2017-03-11 10:14
  • 2054

android studio签名文件在哪?以及查看MD5和SHA1信息

1.签名文件在哪: C:\Users\Administrator\.android \debug.keystore2.怎样查看获取SHA1或者MD5: (1)打开命令窗口:进入c盘的.an...
  • lewes1103
  • lewes1103
  • 2016-10-08 16:10
  • 3450

android 默认签名 debug签名

现在负责对android应用软件添加签名,原来这里面有怎么多我不知道的知识。                   ...
  • penglijiang
  • penglijiang
  • 2013-03-01 14:54
  • 14581

Android Studio 使用正式签名进行调试

当我们在做微信微博sdk分享的时候调试非常麻烦,因为要使用对应的签名版本才能调用sdk成功。 当我们使用AndroidStudio的Gradle之后会很简单的解决这个问题。 1.我们把签名文件放到...
  • qq_26420489
  • qq_26420489
  • 2016-11-02 14:45
  • 5107

Android Studio 使用正式签名进行调试

在Android Studio中,可以使用Gradle进行打包时自动签名。其实Android Studio默认会给调试应用加上Debug签名,但有时候调一些第三方SDK时,需要正式签名才能调起来,所以...
  • yyh352091626
  • yyh352091626
  • 2016-03-17 21:33
  • 18810

Android应用apk的调试模式签名和发布模式签名

一般从项目的bin目录下拷贝的apk是调试模式签名,在发布时往往不被通过,例如在联想开发社区会报错"校验签名信息异常,不允许android debug签名apx包"。         《Androi...
  • berber78
  • berber78
  • 2012-02-16 14:41
  • 12313

Android应用程序签名 debug签名

Android系统要求所有的程序经过数字签名才能安装,如果没有可用的数字签名,系统将不许安装运行此程序,不管是模拟器还是真实手机。因此,在设备或者是模拟器上运行调试程序之前,必须为应用程序设置数字签名...
  • centralperk
  • centralperk
  • 2012-04-04 14:50
  • 18204

Android调试大法 自定义IDE默认签名文件

你是否为调试第三方SDK时debug签名和release签名发生冲突而烦恼?你是否在debug时第三方功能测试通过,而release时无法使用?你是否在为对接微信、支付宝、地图因签名导致的问题而烦恼?...
  • yanzhenjie1003
  • yanzhenjie1003
  • 2016-11-25 14:35
  • 5571

如何让android studio在运行时自带签名

以前开发百度地图的时候,申请一个key后,直接运行eclipse,便可以获取位置信息。 今天在用android studio做的时候,插上手机,直接真机调试的时候,发现每次总是获取key失败。使用a...
  • adfghjkl
  • adfghjkl
  • 2015-07-24 15:18
  • 2560

android studio签名文件在哪?以及查看MD5和SHA1信息

1.签名文件在哪: C:\Users\Administrator\.android \debug.keystore2.怎样查看获取SHA1或者MD5: (1)打开命令窗口:进入c盘的.an...
  • lewes1103
  • lewes1103
  • 2016-10-08 16:10
  • 3450
    个人资料
    • 访问:1604900次
    • 积分:6517
    • 等级:
    • 排名:第4287名
    • 原创:52篇
    • 转载:0篇
    • 译文:1篇
    • 评论:1273条
    我的微信公众号
    欢迎关注我的公众号,不定期为您推送优选博文,生活趣事!
    关注我的微信公众号

    关注我的微博
    友情链接


    我的Github

    QQ交流群 547839514

    博客专栏