如何为发布而不是调试创建密钥库?扑

Posted

技术标签:

【中文标题】如何为发布而不是调试创建密钥库?扑【英文标题】:How create keystore for release and not on debug? flutter 【发布时间】:2019-02-25 05:22:01 【问题描述】:

我使用这个网站https://flutter.io/android-release/按照部署flutter的步骤进行操作

当我运行 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>

【问题讨论】:

你能发布你的android项目的文件夹结构吗? 我该怎么做呢? 只拍一张你的文件夹结构的照片?您在哪里定义了 keyAlias, ... vars? 我在key.properties中定义了,edit中的文件夹结构 是的,就是这样,非常感谢你对我的包容......密码也不应该使用它们 【参考方案1】:

您必须删除“

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

根据文档,kjs 文件应该保存在安全的地方,不公开,并且不应该在你的应用文件夹中。【参考方案3】:

如果您使用的是 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

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

【讨论】:

以上是关于如何为发布而不是调试创建密钥库?扑的主要内容,如果未能解决你的问题,请参考以下文章

如何为我的 C# 应用程序创建产品密钥?

如何为python项目创建虚拟环境

如何为 R 中使用百分比而不是计数作为 y 轴的数据框创建条形图?

如何为 Google App Signing 生成上传密钥?

无法重新创建丢失的调试密钥库?

如何为本地 git (github) 存储库永久添加 SSH 密钥? [复制]