Android签名的总结

应用今天要上微信登录,大家都知道微信登录是需要开放平台上申请的,在微信开发平台创建移动应用后,需要填写:

需要填写的内容

问题

这里的应用签名是keystore的证书的md5,但是微信的这个只有一个填写输入框,不像百度地图、高德地图那样,有线上的SHA1和开发调试的SHA1两种,那这就纠结了,在开发运行的时候AS IDE默认使用的签名keystore是系统的 debug.keystore,系统的和自己项目线上的keystore的MD5、SHA1肯定是不一样的,那么问题来了,要怎么统一用线上的,又不影响开发调试(总不能开发的时候微信那边绑定是系统的keystore,据我所了解,很多公司去微信公众平台注册绑定申请功能权限的工作都是交由运营部或者产品部来完成的,如果版本经常更新,估计这两部门的同事会起杀心)。

解决方案

既然不能同时使用线上和系统debug的keystore,那我们就使用同一个,只要确保MD5、SHA1一致就ok了,微信上我们继续使用线上的MD5,百度地图、高端地图等第三方的一些服务把线上和开发调试的SHA1都使用线上keystore的:
命令行进入线上keystore的文件所在目录,然后输入如下命令,即可查看签名。

keytool -list -v -keystore app-release.jks
  • 复制一份线上的keystore文件在同一个文件夹下:
Paste_Image.png
  • 修改这个keystore文件的别名alias,改成androiddebugkey(系统的debug.keystore的别名就是这个,如果不是这个别名,调试运行的时候会编译不通过,提示需要使用这样的alias),使用如下命令来修改:
keytool -changealias -keystore ishopping-debug.jks -alias ishopping -destalias androiddebugkey

-alias后面是原来的别名,-destalias后面是新的别名,记住一定要用androiddebugkey作为别名。

  • 修改调试用keystore的storepasswd和keypasswd的口令为“android”(也需要和系统的debug.keystore的一样都使用这个口令),使用如下命令来修改:
// 修改密钥口令
keytool -keypasswd -keystore ishopping-debug.jks -alias androiddebugkey
// 修改密钥库口令
keytool -storepasswd -keystore ishopping-debug.jks

每一行命令,后都需要输入原有的密钥库和密钥口令,然后再输入新的口令:

修改口令
  • 然后使用开头的查看签名MD5和SHA1的命令来查看新的调试开发用的keystore文件,看看签名是不是和线上的一样。

  • 最后在gradle里面配置:

signingConfigs {    
    release {        
        // 此处是相对路径,可以在module  app下新建一个key文件夹把keystore文件拷贝进去
        storeFile file('key/ishopping.jks')    
    }  
    debug {        
        storeFile file('key/ishopping-debug.jks')    
    }
}
buildTypes {    
    release {        
        minifyEnabled false        
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        
        signingConfig signingConfigs.release    
    }    
    debug {        
        signingConfig signingConfigs.debug    
    }
}

配置完后,重新同步gradle,然后重新构建工程,点击Android Studio菜单栏Build -- Rebuild Project,新的证书才会生效。(只要是替换修改签名证书,都需要重新构建工程)

以后还有其它签名问题,还会继续更新的,欢迎持续关注。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 服务器https配置 配置https操作说明文档 1、查看服务器环境配置(tomcat和apache合并使用) 2...
    南京杨小兵阅读 8,919评论 0 9
  • 写在前面 今天使用高德地图为应用添加Key的时候,发现有一项需要用到安全码SHA1,而SHA1存在于Keystor...
    代码咖啡阅读 26,896评论 5 34
  • 此篇文章将介绍: 签名文件的生成、apk再次签名、自签名证书的生成; 引言Android开发,涉及到开发和正式版...
    3Q竹林阅读 969评论 0 1
  • 一. Keytool创建和导入命令 创建keystore和密钥对 为存在的keystore生成证书请求文件CSR ...
    sngths阅读 6,407评论 0 1
  • 选译自村上春树的问答栏目(http://www.welluneednt.com) 本篇原文:http://www....
    阿道阅读 354评论 2 3