android studio: release apk is not signed

前端 未结 7 1982
误落风尘
误落风尘 2021-02-04 02:07

* I have rephrased the post since originally posted *

When I try to run a just-built release apk, I get an error \"the apk for your currently selected v

7条回答
  •  说谎
    说谎 (楼主)
    2021-02-04 02:14

    In https://developer.android.com/studio/publish/app-signing#secure-shared-keystore it is written that you shouldn't keep credentials information in build.gradle and VCS. So create a signing config file (Build > Generate Signed APK...), then do so.

    Create a file named keystore.properties in the root directory of your project. This file should contain your signing information, as follows:

    storePassword=myStorePassword
    keyPassword=mykeyPassword
    keyAlias=myKeyAlias
    storeFile=myStoreFileLocation
    

    In your module's build.gradle file, add code to load your keystore.properties file before the android {} block.

    // Create a variable called keystorePropertiesFile, and initialize it to your
    // keystore.properties file, in the rootProject folder.
    def keystorePropertiesFile = rootProject.file("keystore.properties")
    
    // Initialize a new Properties() object called keystoreProperties.
    def keystoreProperties = new Properties()
    
    // Load your keystore.properties file into the keystoreProperties object.
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
    
    android {
        ...
    }
    

    You can refer to properties stored in keystoreProperties using the syntax keystoreProperties['propertyName']. Modify the signingConfigs block of your module's build.gradle file to reference the signing information stored in keystoreProperties using this syntax.

    android {
        signingConfigs {
            config {
                keyAlias keystoreProperties['keyAlias']
                keyPassword keystoreProperties['keyPassword']
                storeFile file(keystoreProperties['storeFile'])
                storePassword keystoreProperties['storePassword']
            }
        }
        ...
    }
    

    Optionally in build.gradle you can add:

    buildTypes {
        release {
            ...
            signingConfig signingConfigs.config
        }
    }
    

    Now you may make a signed apk. Don't forget to exclude keystore.properties from VCS.

提交回复
热议问题