美文网首页Android
Android Studio3.0前后使用signingConf

Android Studio3.0前后使用signingConf

作者: 木溪bo | 来源:发表于2018-10-17 15:28 被阅读76次

    在此记录一下Android Studio3.0前后打包的一些区别,以及在打包时debug和release版本如何使用同一个keystore。

    在第三方sdk调试如微信支付等操作时,debug版本的apk会因为keystore与release的不同而无法吊起微信支付、登录、授权等服务。因为一般我们在微信开发者平台注册的keystore是release版的,只有与微信开发者平台一致才能使用微信相关的服务操作。

    apply plugin: 'com.android.application'
    android {
        compileSdkVersion 27
    //    buildToolsVersion '27'//可以用高版本的build-tool去构建一个低版本的sdk工程
        defaultConfig {
            applicationId "com.***"
            minSdkVersion 19
            targetSdkVersion 27
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        signingConfigs {
     //debug和release版本配置使用同一个jks,便于微信支付调试
    //------------------------方式 1 -----------------------------
    //        release {
    //            //.jks文件放在项目根目录下
    //            storeFile file('../myviewkey.jks')
    //            storePassword "******"
    //            keyAlias "name"
    //            keyPassword "***"
    //        }
    //        debug {
    //            //.jks文件放在项目根目录下
    //            storeFile file('../myviewkey.jks')
    //            storePassword "******"
    //            keyAlias "name"
    //            keyPassword "***"
    //        }
    // buildTypes {
    //      默认不做更改
    //    }
    //------------------------方式 1 -------------end----------------
    
    //------------------------方式 2 -----------------------------
    //方式2中注意buildTypes { }里的配置写法
            appkey {
                //myviewkey.jks文件放在项目根目录下
                storeFile file('../myviewkey.jks')
                storePassword "***"
                keyAlias "myviewkey"
                keyPassword "***"
            }
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                signingConfig signingConfigs.appkey
            }
            debug {
                signingConfig signingConfigs.appkey
            }
        }
    //------------------------方式 2 -------------end----------------
        productFlavors {
        }
        buildToolsVersion '28.0.1'
        compileOptions {
            targetCompatibility 1.8
            sourceCompatibility 1.8
        }
        //更改apk打包后的名称,Android studio3.0之前
    //    android.applicationVariants.all {
    //        variant ->
    //            variant.outputs.each {
    //                output -> output.outputFile = new File(output.outputFile.parent, "ljy_" + defaultConfig.versionCode + "_v" + defaultConfig.versionName + "_" + buildType.name + ".apk");
    //            }
    //    }
        //更改apk打包后的名称,Android studio3.0之后
        android.applicationVariants.all { variant ->
            variant.outputs.all {
                outputFileName = "myview_" + defaultConfig.versionCode + "_v" + defaultConfig.versionName + "_" + buildType.name + ".apk"
            }
        }
    }
    dependencies {
        implementation fileTree(include: ['*.jar'], dir: 'libs')
        implementation 'com.android.support:appcompat-v7:27.1.1'
        implementation 'com.android.support.constraint:constraint-layout:1.1.2'
        implementation 'com.android.support:design:27.+'
        implementation 'com.android.support:support-v4:27.1.1'
        implementation 'com.android.support:recyclerview-v7:27.1.1'
        testImplementation 'junit:junit:4.12'
     
    }
    
    repositories {
        mavenCentral()
    }
    
    

    相关文章

      网友评论

        本文标题:Android Studio3.0前后使用signingConf

        本文链接:https://www.haomeiwen.com/subject/pshrzftx.html