Home > other >  how to generate signed apk in android studio
how to generate signed apk in android studio

Time:11-03

In my case, I have my signature key and I have generated the apk with function menubuild--->generate signed Bundle/Apk

Here are the steps how I generate this apk:

step 1:

enter image description here

step 2:

enter image description here

finally:

enter image description here

When I put this generated release apk into my real device, it will work well.

But when I tried to send this apk to my application center, it said that I don't have any signature file in this apk.

According to many issues found on google, I have noticed that there was actually no signature file in my apk at all. It seems that Android studio's build--->generate signed Bundle/Apk didn't work at all, there was only a release with no signature that generated.

I'm quite new in android developing. I wonder if there are some mistakes in my gradle settings.

My application has 2 gradle.build file like this picture: enter image description here

the gradle.build out side the app directory is :

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    
    repositories {
        google()
        jcenter()
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.3'
        

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

and the gradle.build file inside app directory is:

apply plugin: 'com.android.application'

android {
    signingConfigs {
        debug {
            storeFile file('D:\\CodeRepository\\app-key-store\\SimpleSender.jks')
            storePassword '123123123'
            keyAlias 'simple-sender-key'
            keyPassword '123123123'
        }
    }
    compileSdkVersion 30
    buildToolsVersion "30.0.0"

    defaultConfig {
        applicationId "com.example.simplesender"
        minSdkVersion 25
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
    buildFeatures {
        viewBinding true
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'androidx.annotation:annotation:1.2.0'
    implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '4.9.2'
    implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.78'
    implementation group: 'com.google.guava', name: 'guava', version: '31.0.1-android'
    implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0'

}

I don't know why I can't generate an apk with signature...

CodePudding user response:

Thanks for @Raj Suvariya and @Nitish

The problem was solved according to their kindness instructions. And how I solved this problem is showing below:

First of all I'm using AS of version

Android Studio Arctic Fox | 2020.3.1 Patch 3

If you are using the same AS, you won't find any options to select signing version when you trying to generate a signed apk with your signing key like this picture showing below (they all have these 2 options).

enter image description here

after finishing building, the APK can be run in my device an works just all right, but I cannot deploy it to app store because app store told me that I have no signature file in META-INF.

The solution is to Explicitly specify the signing strategy like this in build.gradle and here is the code. the important code is

            v1SigningEnabled true
            v2SigningEnabled true

here is my build.gradle file

apply plugin: 'com.android.application'

android {
    signingConfigs {
        debug {
            storeFile file('D:\\CodeRepository\\app-key-store\\SimpleSender.jks')
            storePassword 'xxx'
            keyAlias 'simple-sender-key'
            keyPassword 'xxx'
            v1SigningEnabled true
            v2SigningEnabled true
        }
        release {
            storeFile file('D:\\CodeRepository\\app-key-store\\SimpleSender.jks')
            storePassword 'xxx'
            keyAlias 'simple-sender-key'
            keyPassword 'xxx'
            v1SigningEnabled true
            v2SigningEnabled true
        }
    }

.....your other configs.....

}



Try run generate signed apk again, and problem solved, and deployment to app store succeed.

  • Related