React-Native Keystore файл не установлен для подписания версии конфигурации

Я пытаюсь создать файл .apk для выпуска в React Native без успеха. Я выполнил все инструкции здесь, но я всегда получаю тот же результат после запуска gradlew assembleRelease в /my -project/android path:

:app:validateSigningRelease FAILED

FAILURE: Build failed with an exception.

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

Я использую Windows 10, и я подозреваю, что это что-то с редактированием файла ~/.gradle/ gradle.properties

Из моего понимания ~ - c:\Users\User Я даже получил встроенную папку c:\Users\User.gradle.

Ответ 1

У меня было то же самое сообщение об ошибке, но я только исправил это.

Как упоминается в документации RN Facebook Doc

Отредактируйте файл ~/.gradle/gradle.properties или android/gradle.properties

Я отредактировал другой файл, расположенный здесь

~/MYAPP/Android/gradle.properties

Затем сделал чистку и построить снова. Я надеюсь, это поможет.

Ответ 2

Я вижу, что этот поток неактивен почти два месяца, но я решил, что могу записать, что вызвало эту проблему для меня, возможно, это помогает кому-то еще в будущем.

Это было на самом деле довольно просто: когда я скопировал конфигурацию из документации, форматирование не сохранилось, она либо вставляла все на одну строку, либо на несколько, но ломала строки также там, где это не должно. Поэтому вам просто нужно убедиться, что строки в файле build.gradle выглядят следующим образом:

keyPassword MYAPP_RELEASE_KEY_PASSWORD

а не

keyPassword 
MYAPP_RELEASE_KEY_PASSWORD

И это все.

Ответ 3

Вы можете попробовать установить переменные gradle.properties в качестве переменных среды и изменить выпуск signinConfig в файле android/app/build.gradle на что-то вроде:

signingConfigs {
    release {
        storeFile file(String.valueOf(System.getenv("GRADLE_KEYSTORE")))
        storePassword System.getenv("GRADLE_KEYSTORE_PASSWORD")
        keyAlias System.getenv("GRADLE_KEYSTORE_ALIAS")
        keyPassword System.getenv("GRADLE_KEYSTORE_ALIAS_PASSWORD")
    }
}

Я нахожусь на Mac, но я предполагаю, что переменные окружения должны работать лучше в Windows, чем глобальный файл .gradle/ gradle.properties

Надеюсь, что это поможет

Ответ 4

Просто записка для всех, кто сталкивается с этим в поисках помощи. Если вы загрузили хранилище ключей, пароль и псевдоним в appcenter, вам не нужно иметь никаких настроек в android/gradle.properties или android/app/build.gradle файле хранилища ключей, а загруженные переменные env будут использоваться для подписи АПК после того, как он был построен

Ответ 5

Я также использую Windows 10. Для этого необходимо установить командную строку Git Bash для Windows. После установки Git Bash перейдите в свой проект/андроид/приложение и выполните vim ~/.gradle/gradle.properties, это будет работать для меня.

Ответ 6

Я также на Windows 10 и развиваюсь в RN v0.54.4. Я получил эту ошибку в этой версии, но не для моих старых приложений. Для меня мне просто нужно было удалить утверждение if, которое есть в документах React-Native. Они говорят вам, чтобы сделать

release {
        if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
            storeFile file(MYAPP_RELEASE_STORE_FILE)
            storePassword MYAPP_RELEASE_STORE_PASSWORD
            keyAlias MYAPP_RELEASE_KEY_ALIAS
            keyPassword MYAPP_RELEASE_KEY_PASSWORD
        }
    }

но я изменил это на

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

это код, который документы имели в более ранней версии RN.

Ответ 7

Я не хотел изменять общие ~/.gradle/gradle.properties но в нем определены MY_APP... vars.

По какой-то причине я не знаю, что мои переменные android/app/build.gradle MY_APP_... со значениями универсального файла вместо локальной. Я просто переименовал MY_APP... vars в PROJECTNAME... в android/app/build.gradle и android/gradle.properties и теперь это работает.

Ответ 8

У меня была такая же проблема, и после того, как я попробовал много вещей:

  • поставить пароль и ключ в виде строк
  • signingConfig signingConfigs.release комментарияConfig signingConfig signingConfigs.release; который работал, но создал неподписанный apk
  • воссоздал *.keystore снова и снова.

В конце концов, что я пропустил, что я должен был поставить

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****

Внутри MYAPP/android/.gradle/4.10.1/gc.properties. Теперь я знаю, что в документах они ~/.gradle/gradle.properties либо в ~/.gradle/gradle.properties либо в android/gradle.properties

Но ~/.gradle/gradle.properties не существует. и поместить их в android/gradle.properties только не работает.

Надеюсь, что это помогло!

Ответ 9

никогда не забывайте .keystore расширения .keystore !


MYAPP_RELEASE_STORE_FILE=android-app-demo-release-key.keystore