利用grade解决APP release版和debug版签名不同的问题

来源:互联网 发布:诸葛网络和饼哥 编辑:程序博客网 时间:2024/05/22 05:14
  • 我们项目在打包发布的时候会生成一个签名文件,它有自己的一套签名,经常用第三方平台的朋友应该熟悉,MD5码 和SHA1码是签名文件最重要的东西,很多第三方平台例如微信的接入就需要你配置MD5码和SHA1码。
  • 我们的项目分为debug版和release版,一般如果不配置证书直接debug的话,它会用debug.keystore进行签名打包,就会导致你的debug版和release版的SHA1码不一样,这样如果项目上线的话,如果需要调试第三方接口,签名不匹配就无法正常调试了。



解决方法:
     利用grade对签名证书进行配置,让debug版和release版用同一套签名(主要是MD5码和SHA1码一致)
  • 首先发布一个release版,获得它的签名文件。至于发布步骤就不说了,网上一查就有,重点是要记住该证书的KeyAlias(别名),如果是以前的证书并且忘记KeyAlias了,可以利用keytool获取,获取步骤网上查。
  • 接下来打开你项目的app里面的build.gradle,在android里面添加signingConfigs,例如:
   
android {
    signingConfigs {
        config {
            keyAlias 'xxxxxx'
            keyPassword 'xxxxxxx'
            storeFile file('D:/AndroidStudioWorkSpace/.../KeyStore/xxxxx.jks')
            storePassword 'xxxxxxxx'
        }
    }...
      
     这里的config有四个参数:keyAlias是步骤一获取的别名
                                               keyPassword是打开这个证书的密码
                                               storeFile是指你当前使用证书所在的绝对路径
                                               storePassword是指你在获取这个证书的时候要输入的密码
                                               一般在你一开始发布证书的时候AS会先让你输入这四个参数,记住就行了。
  • 然后再build.gradle的buildType里面添加debug和release版需要用的签名
       
buildTypes {
    release {
        minifyEnabled false//是否混淆
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.config
    }
    debug {
        signingConfig signingConfigs.config
    }
}
      
       这里主要关注signingConfig,它声明了release版和debug版所用的签名文件,我们把它的值改为刚刚声明的签名文件:signingConfigs.config。
  • 打开AS,找到build Vanrians
      
     打开可以看到你的module有两个版本(debug版和release版),这两个版本是可以相互切换的,目的是选择当前要安装到设备的版本;这时不管你切换到哪个版本,都了同一个签名加密文件了,也就用了同一个MD5码和SHA1码了。
          
原创粉丝点击