首页 > 解决方案 > 来自 Keystore 的密钥密码

问题描述

我用过这个命令

keytool -genkey -v -keystore ~/nutella.jks -keyalg RSA -keysize 2048 -validity 10000 -alias nutella

生成密钥库。它工作正常,但从我读过的内容来看,这个命令还应该提示您输入密钥密码(而不是商店密码)?我从来没有得到这个提示。我可以跑

keytool -v -list -keystore //nutella.jks

查看 Keystore 的内容。钥匙似乎在那里......即正确的别名在那里。我在哪里获取/设置特定别名的密码?

我在 android 目录中有一个 key.properties

storePassword=password
keyPassword=password
keyAlias=ballotbox
storeFile=/Users/gerardhorgan/ballotbox.jks

在 build.gradle 我有:

def keystoreProperties = new Properties()
   def keystorePropertiesFile = rootProject.file('key.properties')
   if (keystorePropertiesFile.exists()) {
       keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
   }

android {
    compileSdkVersion 28

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "app.ballotbox.app"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }


    signingConfigs {
       release {
           keyAlias keystoreProperties['keyAlias']
           keyPassword keystoreProperties['keyPassword']
           storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
           storePassword keystoreProperties['storePassword']
       }
   }

    buildTypes {
       release {
           signingConfig signingConfigs.release
       }
   }
}

当我尝试生成发布版本时,我得到

Execution failed for task ':app:validateSigningRelease'.                
> Keystore file not set for signing config release 

我认为它可能与 keyPassword 有关,因为我没有设置它并在可以使用 storePassword 的地方阅读。

`

标签: androidflutter

解决方案


试试看android,这是默认的。


推荐阅读