如何创建密钥库以供发布而不用于调试?颤抖

时间:2018-09-20 20:32:55

标签: android google-play flutter

我遵循了使用该网站https://flutter.io/android-release/

进行扑扑的步骤。

当我运行flutter build apk时,出现此错误

Execution failed for task ':app:validateSigningRelease'.
> Keystore file filepath/key.jks> not found for signing config 'release'.

我想念它什么,所以它会签名发布?

当我在build.gradle中将行signingConfig signingConfigs.release更改为signingConfig signingConfigs.debug时,它可以工作,但是需要将其签名以便发布

我的build.gradle

signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release

            minifyEnabled true
            useProguard true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

文件夹结构:

Project

-Android
|-- .gradle
|-- app
|   |-- src
|   |   `-- main
|   |       |-- java
|   |       |-- res
|   |       `-- AndroidManifest.xml
|   `-- build.gradle
|-- gradle
|   `-- wrapper
|-- gradle.properties
|-- gradlew
|-- local.properties
|-- proguard-rules.pro
|-- gradlew.bat
`-- key.properties

我在wrapper,java和res目录下没有文件

key.properties

storePassword=<placeholder1>
keyPassword=<placeholder1>
keyAlias=key
storeFile=</Users/Conner/key.jks>

3 个答案:

答案 0 :(得分:6)

您必须删除'<'字符,它只是作为示例数据。

storePassword=yourpasswordhere
keyPassword=yourkeypasswordhere
keyAlias=youralias
storeFile=/your/path/key.jks

答案 1 :(得分:1)

为避免冲突,请将 key.jks 文件放在 android \ app \ key 文件夹中,然后在key.properties文件中添加

storePassword=yourpasswordhere keyPassword=yourkeypasswordhere keyAlias=youralias storeFile=key/key.jks

答案 2 :(得分:0)

如果您使用的是Android Studio,并且要将密钥放置在android以外的任何其他文件夹中,则必须在 key.properties中为 storeFile 使用以下格式文件:

storePassword=app_bar_demo_key
keyPassword=app_bar_demo_key
keyAlias=app_bar_demo_key
storeFile=E:\\Dharmik\\Flutter\\Demo\\Keystore\\your_key_name.jks

我已经演示了我的密钥路径,但是您必须使用存储密钥的路径,但是应该使用' \\ '(双反斜杠)而不是'\'来分隔路径(如上所示)(单个反斜杠)。
使用此方法,您可以将密钥放置在所需的任何位置。