簡體   English   中英

React Native:Android:無法生成簽名的 APK

[英]React Native: Android: Cannot generate signed APK

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 文檔中列出的步驟。

因此,如果您嘗試生成簽名的 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 密碼不正確“我面臨同樣的問題。在 android studio 中使用 Build -> Generate Signed APK 有效,但將配置放在 build.gradle 中卻沒有。”

然后使用“簽名/密鑰工具 UI 是 Android Studio 的一部分”,可以在 Build -> Generate Signed Bundle/APK ...

在那里您可以創建一個新的密鑰庫密碼和一個必須相同的密鑰密碼!!!

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

快樂編碼:)

我有同樣的問題。 在 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
        }
    }
}

不要混淆! 輸入密碼實際上是一個簡單的錯誤:Not in

用戶/你的名字/.gradle/gradle.properties

但是在

用戶/你的名字/.gradle/gradle.properties

我試圖基於特定於項目的 gradle.properties(即在 projectDir/android/gradle.properties)進行構建,但是我在以前的項目中配置的全局 gradle.properties 被使用了。 我的解決方法是刪除我的全局 gradle.properties(即用戶/你的名字/.gradle/gradle.properties)

我試過:

$ ./gradlew clean
$ ./gradlew bundleRelease

它奏效了。

我從約魯巴語的回答中得到了幫助,我試圖構建另一個開發人員留下的應用程序

我正在嘗試使用構建密鑰庫文件
keytool -genkey -v -keystore playnice.keystore -alias playnice -keyalg RSA -keysize 2048 -validity 10000

命令提示符然后要求輸入密碼,此密碼應與 build.gradle 文件中設置的相同。

在我的情況下 build.gradle 文件有密鑰而不是密碼,因此我查看了 gradle.properties 以找到該密鑰的值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM