Цепочка сертификатов не найдена, как исправить и опубликовать в Google Play Store?
СООБЩЕНИЕ ОШИБКИ:
jarsigner: Certificate chain not found for: project_foo.<br/>
project_foo must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
Вопрос:
Как включить цепочку сертификатов открытого ключа для устранения ошибки?
ПРЕДПОСЫЛКИ:
Разработчик приложения завершил приложение для Android и доставил неподписанный APK под названием Foo.apk. Моя цель - подписывать и подписывать APK при подготовке к загрузке в магазин Google Play. Мое хранилище ключей расположено в каталоге C:\Path \.keystore на компьютере под управлением Windows.
COMMAND LINE, моя команда:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore C:\Path\\.keystore Foo.apk project_foo
КОМАНДНАЯ ЛИНИЯ, ответ:
Enter Passphrase for keystore:
jarsigner: Certificate chain not found for: project_foo.<br/>
project_foo must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
ТАКЖЕ ПОРЯДОК:
Убедитесь, что я помню правильный пароль. Использование "keytool -list" из командной строки показывает мне ожидаемый список (он включает в себя один закрытый ключ).
ПРЕДЫДУЩАЯ ОС ВОПРОСОВ: цепочка сертификатов не найдена, заданной с помощью файла .cer
из Verisign. У меня нет подобного файла.
ДРУГАЯ ИНФОРМАЦИЯ: машина Windows 7, используя стандартную командную строку Windows.
Ответы
Ответ 1
keytool -keystore formconnect.keystore -list -v
Вы можете использовать эту команду, чтобы узнать свое имя псевдонима после того, как вы создали свой ключ.
Первая строка исполнения содержит псевдоним: <value>
Если используется keytool, то псевдоним может быть "mykey".
Используйте это псевдоним при упаковке приложения.
Ответ 2
У меня была такая же проблема
мои команды были
для генерации ключа
keytool -genkey -v -keystore testapp-key.keystore -alias testapp-key -keyalg RSA -keysize 2048 -validity 10000
, а затем я сделал это, чтобы подписать приложение
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore testapp-key.keystore testapp.apk testapp
я получил эту ошибку
jarsigner: Certificate chain not found for: testapp.<br/>
project_foo must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
то я заменил псевдоним 'testapp' в команде jarsignir с псевдонимом ключа 'testapp-key', который находится в первой команде, т.е. команда генерации ключа
команда будет выглядеть так:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore testapp-key.keystore testapp.apk testapp
в вашем случае это будет как это
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore C:\Path\\.keystore Foo.apk your-key-alias
Ответ 3
Разработчик нашей команды предложил решение, которое устранило проблему. Раньше я скопировал Foo.apk в каталог с jarsigner.exe и попытался запустить его там. Он предложил:
- Установите переменную среды PATH, чтобы Windows могла найти исполняемый файл jarsigner.
- Переместите Foo.apk на путь, где было расположено хранилище ключей.
- Выполните приведенную ниже команду (без использования пути для поиска хранилища ключей).
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore .keystore Foo.apk project_foo
Это работает! Устранение необходимости указания пути к файлу хранилища ключей устранило проблему.
Ответ 4
добавить путь к папке unsigned.apk
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore keystorename.keystore..... \platform\android\build\output\apk\android-release-unsigned.apk aliasname
он работает для меня!!