Я только сейчас начал использовать пакеты приложений. Я установил два сертификата в разделе App signing на панели инструментов (сертификат подписи и сертификат загрузки).
Я создал пакет приложений и подписал его с помощью сертификата загрузки, но когда я загружаю пакет в Android Instant Apps (что на самом деле является причиной, по которой я переключился на пакеты приложений), он говорит, что:
Your Android App Bundle is signed with the wrong key. Ensure that your app bundle is signed with the correct signing key and try again: xx:xx:xx:xx.....
Я вручную проверил SHA-1 хранилища ключей загрузки (используя keytool в терминале), и он соответствует xx:xx:xx.... говорится в сообщении об ошибке.
Что я делаю неправильно? Пакет приложений подписан требуемым сертификатом загрузки, но Google Play, похоже, это не нравится.
Идеи?
Да, это. последний apk, который я подписал, подписан другим ключом, но именно поэтому я определил хранилище ключей для подписи и загрузки, у меня есть ключ подписи для Google, чтобы он мог подписывать apk вместо меня, и я использую ключ загрузки, чтобы подписать его и дать это в гугл. теперь .. почему google не нравится хранилище ключей загрузки ... бьет меня ?! Или это не так должно работать?
Я попытался подписать пакет с исходным хранилищем ключей, которое я использовал для apks до сих пор, но ему все равно это не нравится.
Ну, я думаю, что лучший способ - обратиться в службу поддержки Google Play. Насколько я знаю, бандл нужно подписывать тем же ключом, что и основной апк.
Я пробовал, он все равно не принимает комплект приложений... :(
Пакеты приложений просто подписываются с использованием того же формата, что и jarsigner. Таким образом, вы можете самостоятельно проверить хэш сертификата подписи пакета приложений. Например, в линуксе:
zipinfo -1 ${APK?} \
| grep -E "META-INF/.*(RSA|DSA|EC)$" \
| xargs -I{} unzip -p ${APK?} {} \
| keytool -printcert
Если выходные данные показывают подпись, которая соответствует правильному ключу подписи, значит, в магазине Play есть ошибка, и вам следует обратиться в службу поддержки Play Console. Это доступно в меню справки в Play Console.
С другой стороны, если сертификат не совпадает, даже если вы думаете, что подписываете с правильным хранилищем ключей/ключом, вы делаете что-то не так, и пакет приложений не подписан с правильным сертификатом загрузки.
Решение было очень простым. Мне пришлось очистить свой проект, а затем перестроить его.
Android Studio подписывала мой пакет приложений старым сертификатом, который я использовал.
Что я сделал ранее, так это зашел на Build -> Generate Signed Bundle / APK и изменил файл jks в селекторе файлов на новый загружаемый файл jks. Кажется, Android Studio кэширует старый путь сертификата и использует его, хотя я выбрал новый. Может быть ошибка в AS.
Так что да ... теперь, если я очищаю проект каждый раз, когда я меняю файл jks, он работает, пакет apk или приложения подписывается соответствующим сертификатом ...
слово за мной! большое спасибо ! Я использовал React Native с Web-storm gradlew bundleRelease без успеха, затем использовал студию Android, которая отлично работает для меня!
Нет, это не сработало для меня. На прошлой неделе загрузил без проблем. Вчера сделал небольшое исправление ошибки, других изменений нет, google говорит: «Ваш пакет приложений для Android подписан неправильным ключом». Ни уведомлений, ни писем от них о том, что что-то изменилось.
Это также работает на платформе Flutter. Запуск flutter clean, а затем перестроение пакета приложений решает проблему.
В моем случае проблема заключалась в пакете приложений Android, я забыл увеличить versionCode для проекта, и эта ошибка не показывалась на консоли. Вместо этого он показывал ошибку, связанную с сертификатом SHA.
Это решило мою проблему сборки из Unity. Решить эту проблему помогло не только обновление «Кода версии пакета», но и «Версия».
Я не забыл изменить код версии, но я сделал это во второй раз и смог загрузить. Проголосуйте за это решение и будь проклят Google за такое невероятно вводящее в заблуждение сообщение об ошибке.
После небольшого поиска я обнаружил, что у меня случайно был testCoverageEnabled true в моем типе сборки release.
release {
testCoverageEnabled true
...
}
Это сделает APK / App Bundle отлаживаемый, и Google Play Console будет считать, что он не подписан. Удаление этого решило проблему.
Спасибо! это поможет. Почему Google не публикует никаких документов об этом? Вы экономите мне часы поиска!
Я вижу, что есть ответ, но в моем случае я забыл удалить
debuggable = true
из приложения build.gradle
Я попытался использовать несколько ответов здесь и в этот вопрос, но каким-то образом я получил эту ошибку, потому что у меня были некоторые проблемы с моими файлами android/app/build.gradle и android/gradle.properties.
Две вещи, которые вы должны проверить (в дополнение к другим решениям здесь):
android/gradle.properties и android/app/build.gradle убедитесь, что ваши переменные keystore точно совпадают.
android/gradle.properties у вас наверняка есть что-то вроде этого:
MYAPP_RELEASE_STORE_FILE=<>
MYAPP_RELEASE_KEY_ALIAS=<>
MYAPP_RELEASE_STORE_PASSWORD=<>
MYAPP_RELEASE_KEY_PASSWORD=<>
android/app/build.gradle:
android {
...
signingConfigs {
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
}
}
}
}
android/app/build.gradle убедитесь, что вы установили signingConfig на signingConfigs.release в вашем releasebuildTypes:
android {
...
buildTypes {
debug ...
release {
signingConfig signingConfigs.release
}
}
}
Примечание: Если вы занимаетесь разработкой react-native и оказались здесь, обязательно выполните все шаги на «Публикация в магазине Google Play». Я думал, что смогу пропустить несколько шагов, не вызывая проблем, и это привело к часам отладки.
Я столкнулся с этой ошибкой, потому что: -
поэтому, если вы сделали что-то подобное, попробуйте указать путь первого ключа, сделанного с проектом в пути к хранилищу ключей с тем же паролем и тем же псевдонимом ключа.
Это будет работать, потому что у нас может быть только один ключ для проекта, который является первым сгенерированным ключом. и каждый раз, когда вы хотите создать пакеты apk/app вашего приложения для целей публикации/обновления, вы должны предоставить один и тот же ключ и пароль, поэтому настоятельно рекомендуется хранить ключ в безопасном месте.
Примечание: - в некоторых случаях (если у вас уже было несколько неудачных попыток) вы можете столкнуться с чем-то вроде ошибки «у вас уже есть одна с той же версией» в консоли игрового магазина, в этом случае в файле build.gradle просто увеличьте versionCode и versionName ни на один и перегенерировать пакеты apk/app
В моем случае я загружаю не то приложение с тем же именем. Просто убедитесь, что вы загружаете тот же идентификатор приложения, что и предыдущий.
Для меня что-то пошло не так, так это то, что в моей консоли Google Play я уже выбрал игру для подписи приложений, поэтому, когда я впервые загрузил aab, Google зарегистрировал и подписал мое приложение для последующих выпусков. Это означает, что если я загружу другой aab, подписанный сертификат будет отличаться от сертификата, подписанного Google.
Мне нужно было удалить это, поэтому я загружаю другой файл aab. В другом случае, чтобы сделать это, мне пришлось нажать на свой профиль и выбрать управление учетными записями разработчиков. Я видел черновики моего подписанного Google aab, я удалил это, чтобы я мог сгенерировать и повторно загрузить другой.
Когда я удалил его, я создал еще один aab из своей студии Android и снова загрузил его на свою консоль Google Play. На этот раз он не выдал мне предупреждения о неправильном ключе подписи.
Что-то случилось, чтобы изменить хранилище ключей, которое использует ваше приложение! Я просто предложил самые распространенные вещи. другая возможность: кто-то запустил expo build:android -c или expo build:android --clear-credentials или запустил учетные данные expo и удалил хранилище ключей.
если это не одна из этих вещей, то единственным оставшимся вариантом будет то, что Google изменил хранилище ключей загрузки (крайне маловероятно) или на серверах expo мы изменили ваше хранилище ключей без вашего запроса (нет известных случаев этого, крайне маловероятно).
вы можете убедиться, что вы использовали одно и то же имя пользователя и ярлык, найдя самую последнюю сборку, которую вы отправили в магазин на expo.io, и убедившись, что имя пользователя и ярлык соответствуют вашим ожиданиям.
если это не принесет вам никаких полезных результатов, вы можете попросить Google Play сбросить хранилище ключей загрузки - android - Утерян файл хранилища ключей для приложения (но включена функция подписания приложений Google Play)
Возможно, ваш ключ подписи пакета приложений отличается от исходного ключа подписи приложения?