Android Studio确保debug与release版本apk签名一致

首先介绍debug版App与release版App区别

release是发行版本,比debug版本有一些优化,文件比debug文件小,运行速度快

debug是调试版本,包含的程序信息更多

debug和release调用两个不同的底层库

debug设置断点,进行单步执行等调试,而release不含任何调试信息 

 Android开发时可能会遇到在真机上调试时的debug App分享给其他用户打开失败,或者再安装release发行版App时,签名不一致导致安装失败或者一些SDK不能初始化这些问题

核心的解决方法都是:将debug版本与release版本的apk签名设置一致即可

设置方法如下:

在应用级的build.gradle的android{}字典内添加如下代码:

   应用级的build.gradle 即文件开头有 apply plugin: 'com.android.application' 的build.gradle 文件

signingConfigs {
        config {
            keyAlias 'key0' //自己打包签名别名
            keyPassword '123456' //自己的打包key密码
            storeFile file('E:\\pt\\AS_SDK\\apk2.jks') //自己的签名存储路径
            storePassword '123456'//自己的store密码
        }
}

buildTypes {
        release { //应该本来就有release字典,只用在其中添加字典内第一句代码即可
            signingConfig signingConfigs.config
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug{ //debug块本来应该没有 需要手动添加
            signingConfig signingConfigs.config
        }
}

具体改正后的android字典如下:

android {
    signingConfigs {
        config {
            keyAlias 'key0'
            keyPassword '123456'
            storeFile file('E:\\pt\\AS_SDK\\apk2.jks')
            storePassword '123456'
        }
    }
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.hello" //这里填你自己的应用id
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 101 
        versionName "1.0.1" //版本号
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            signingConfig signingConfigs.config
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug{
            signingConfig signingConfigs.config
        }
    }
    ndkVersion '22.1.7171670' //指明ndk版本号
}

 经上述修改后,可使得debug版与release版应用签名一致 ​​​​​​​

你可能感兴趣的:(#,Android_Java,Android_Kotlin,android,studio,android,ide,gradle)