React Native:Android:无法生成签名的APK

7
Execution failed for task ':app:packageRelease'.
Failed to read key my-key-alias from store
"/Users/MichaelLeung/GHRepos/MyApp/android/app/my-release-
key.keystore": Keystore was tampered with, or password was incorrect

我确定我的密码是正确的。我已经按照Facebook在React Native文档中列出的步骤多次尝试了。

我认为你给出了错误的别名。 - Waqas Ahmed
我有同样的问题。我提供了所有正确的数据!:// - IvRRimUm
5个回答

3

如果你尝试生成一个签名的APK并使用了非ASCII字符,可能会出现这个错误。

任务“:app:packageRelease”的执行失败。

com.android.ide.common.signing.KeytoolException: 无法从存储库“/Users/.../.../.../android/app/my-release-key.keystore”中读取密钥my-key-alias: 密钥库密码不正确

我找不到重置旧密码的方法。

幸运的是,有一个解决方法,使用Android Studio。

首先,我必须从gradle.properties和build.gradle中删除所有的代码, (根据文档的要求进行添加)。

这个解决方案来自于这里的一条评论:Keystore password was incorrect “我遇到了同样的问题。在Android Studio中使用“Build”->“Generate Signed APK”可以解决问题,但在build.gradle中放置配置不行。”

然后使用Android Studio中的“签名/密钥管理器UI”,该工具可以在“Build”->“Generate Signed Bundle/APK”中找到...

在那里,您可以创建一个新的密钥库密码和密钥密码,两者必须相同!

注意,在完成后,Android Studio会将app-release.apk文件保存在android->app->release中。

编码愉快:)


2
我曾经遇到同样的问题。 在build.gradle中硬编码设置,而不是在gradle.properties中设置,这样就可以工作了。
  signingConfigs {
    release {
        //if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
            storeFile file("key.keystore")
            storePassword "****"
            keyAlias "myKey"
            keyPassword "****"
       // }
    }
}

进一步使用java.lang.System.console(MYAPP_RELEASE_STORE_PASSWORD)进行测试后,我发现我的密码后面有一个空格。

  signingConfigs {
    release {            
        if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
        java.lang.System.console(MYAPP_RELEASE_STORE_PASSWORD)

            storeFile file(MYAPP_RELEASE_STORE_FILE)
            storePassword MYAPP_RELEASE_STORE_PASSWORD
            keyAlias MYAPP_RELEASE_KEY_ALIAS
            keyPassword MYAPP_RELEASE_KEY_PASSWORD
        }
    }
}

0

我尝试过:

$ ./gradlew clean
$ ./gradlew bundleRelease

它起作用了。


-1

我从Yoruba的答案中得到了帮助,我试图构建另一位开发者留下的应用程序。

我尝试使用以下命令构建密钥库文件:
keytool -genkey -v -keystore playnice.keystore -alias playnice -keyalg RSA -keysize 2048 -validity 10000

然后命令提示符会要求输入密码,这个密码应该与build.gradle文件中设置的密码相同。

在我的情况下,build.gradle文件中有Keys而不是password,因此我查看了gradle.properties以找到该键的值。


-1

不要困惑! 这实际上是一个简单的错误 输入您的密码: 未成功

Users/YourName/.gradle/gradle.properties

但是在

Users/YourName/.gradle/gradle.properties

我试图基于一个特定项目的gradle.properties(即在projectDir/android/gradle.properties)进行构建,但是之前配置的全局gradle.properties被使用了。对我来说,解决方法是删除我的全局gradle.properties(即Users/YourName/.gradle/gradle.properties)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接