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