Загрузка Android App Bundle в консоль Google Play — ошибка подписи ключа

Я пытаюсь загрузить новый файл .aab в консоль Google Play, но продолжаю получать эту ошибку:

Upload failed
You uploaded an APK or Android App Bundle that is signed with a key that is also used to sign APKs that are delivered to users. Because you are enrolled in App Signing by Google Play, you should sign your APK or Android App Bundle with a new key before you upload it.

Я полностью озадачен, так как я сгенерировал новый ключ для этого пакета приложений во время создания пакета приложений, то есть через пункт меню «Сборка»> «Создать подписанный пакет / APK...» в Android Studio, так что это совершенно новый ключ, не используемый другими приложениями.
Я даже пытался создать совершенно новое хранилище ключей с новым ключом, но всегда получаю ту же ошибку. Это какая-то причуда, с которой кто-то сталкивался?

При регистрации для подписки приложений в Google Play для этого приложения я выбрал вариант "Разрешить Google управлять ключом подписи приложения и защищать его (рекомендуется)", и из всей документации, которую я прочитал, ключ, который вы используете для подписи приложения, сначала становится «Ключом загрузки», поэтому кажется, что Делаю все правильно, а кости нет.

У кого-нибудь есть какие-либо советы или прошлый опыт по этому поводу?

47
0
52 801
13
Перейти к ответу Данный вопрос помечен как решенный

Ответы 13

У меня была такая же проблема, я решил ее, удалив свое приложение и снова добавив его в игровую консоль.

Попробуйте удалить все, что касается нового приложения, из консоли, затем начните с создания нового ключа и повторной сборки приложения с новым ключом. Затем вы можете повторно загрузить новый apk.

«через пункт меню Build > Generate Signed Bundle / APK... в Android Studio, так что это совершенно новый ключ, не используемый другими приложениями».

Не совсем. Хранилище ключей, которое использует Android Studio, связано с установкой Android SDK, поэтому все приложения, созданные в вашей Studio, подписаны одним и тем же ключом.

Случилось так, что вы, должно быть, создали другое приложение, подписали его с помощью этого хранилища ключей и загрузили в Play Console, таким образом, сделав его ключом, используемым для подписи APK, отправляемых конечным пользователям. В то же время вы создали другое приложение, которое вы зарегистрировали в Play Signing: для этого приложения сертификат загрузки извлекается из первого загруженного вами APK. Поскольку вы также подписали этот APK с помощью Studio, использовалось то же хранилище ключей. Play обнаружил, что это был один и тот же сертификат для обоих этих приложений, и, поскольку вы использовали один и тот же ключ для двух разных целей (ключ подписи приложения для вашего первого приложения и ключ загрузки для вашего второго приложения), Play отклонил его. Причина в том, что ключ подписи приложения гораздо важнее, чем ключ загрузки (последний можно сбросить, а первый нельзя), поэтому не следует использовать их для двух разных целей.

Другими словами, вам потребуется создать другое хранилище ключей для подписи ваших приложений, зарегистрированных в Play Signing (в идеале, по одному для каждого приложения), и убедиться, что вы никогда не используете это хранилище ключей в качестве ключа подписи приложения для другого приложения.

«Другими словами, вам нужно будет создать другое хранилище ключей для подписи ваших приложений, зарегистрированных в Play Signing (в идеале, по одному для каждого приложения), и убедитесь, что вы никогда не используете это хранилище ключей в качестве ключа подписи приложения для другого приложения». Вот что я имел в виду под «Я даже пытался создать совершенно новое хранилище ключей с новым ключом в нем, но всегда получаю одну и ту же ошибку». Совершенно новое хранилище ключей, совершенно новый ключ, даже близко не подошедший к другому приложению. Все та же ошибка.
jaseelder 23.01.2019 11:34

Я могу ошибаться, но я почти уверен, что проблема на вашей стороне: вы либо не создали новое хранилище ключей, либо не загрузили APK, который был подписан с новым хранилищем ключей. Если вы убеждены в обратном и считаете, что в Play Console есть ошибка, я бы посоветовал обратиться в их службу поддержки (support.google.com/googleplay/android-developer/… — у них даже есть чат), где они могут более подробно изучить конкретный случай. .

Pierre 23.01.2019 14:59

Я подтверждаю, что Пьер прав, он работает с использованием нового ключа, который не используется ни в одном другом приложении. Вы также можете создать новый псевдоним в том же хранилище ключей, чтобы избежать создания другого ключа.

Alex 17.02.2020 14:21
Ответ принят как подходящий

Что ж, после долгих криков и криков, в том числе обращения в службу поддержки Google Play Console в чате (это поддержка только первого уровня, так что... не очень помогает) и по электронной почте (которая поставила меня в слишком тяжелую корзину и сказала они не могут предложить поддержку для разработки приложений — что? проблема связана с загрузкой приложения в Play Console, а не с разработчиком приложения!), я обнаружил этот вопрос с самостоятельным ответом https://stackoverflow.com/a/54359729/845205.

По сути, убедитесь, что вы выполняете проект «Очистить и перестроить» всякий раз, когда выполняете что-либо для подписи в Android Studio. По какой-то причине он думал, что мое новое приложение использует ключ из моего старого приложения, и продолжал подписывать его. (Думаю, решение все-таки заключалось в поддержке разработки приложений!)

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

abdu 30.04.2019 13:26

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

Я сталкиваюсь с теми же проблемами, в моем случае был настроен signingConfig, я сделал одну простую ошибку, я забыл изменить отлаживаемое приложение на ложный. поэтому, несмотря на то, что я сгенерировал из меню или из команды gradle, сборка была успешно сгенерирована, но ее можно было отлаживать, поэтому игровой магазин не принимает подписанный apk и дает мне сообщение типа Upload Failed The Android Bundle was not Signed in.

Я также сталкиваюсь с этой проблемой. Я добавляю эту строку signingConfig signingConfigs.release в android > app > build.gradle > {buildType{release{ signingConfig signingConfigs.release }}}.

Zeeshan Ali 14.08.2020 22:04

Это верно для моего случая. Я забыл, что в моем файле градиента уровня приложения buildTypesrelease для отладки все еще установлено значение true.

Mihae Kheel 21.03.2021 18:47

Ты спас мою жизнь

ThoIam 23.11.2021 04:05

Решение для меня оказалось в изменении вариант сборки.

Напомним, что когда я пытался загрузить подписанный пакетный файл .aab в консоль Google Play для разработчиков, я получил эту ошибку Комплект Android App Bundle не подписан..

Имейте в виду, что эта ошибка неоднозначна и может быть вызвана рядом проблем, которые видны в других ответах на этой странице. Первоначально я загрузил свое приложение, используя вариант сборки release. Забыв, какой вариант я использовал изначально, я попытался загрузить вариант сборки debug и получил эту ошибку.

Мое исправление: Загрузить тот же вариант сборки, что и исходный. Они должны совпадать!

В чем разница между вашим вариантом отладки и выпуском? По какой причине ваш вариант выпуска не работает?

BabyishTank 28.09.2021 04:56

Дело в том, что Google ожидает, что новая версия заменит старую тем же вариантом. @BabyishTank

heiligbasil 28.09.2021 21:25

Спасибо, это тоже была моя проблема. Это сообщение об ошибке вводит в крайнее заблуждение. Я отправил отзыв в Google.

Zwyx 13.10.2021 10:57

@Zwyx да, я полностью согласен, и если бы Google мог быть более описательным в ошибке, это значительно ускорило бы обнаружение источника наших ошибок.

heiligbasil 13.10.2021 16:46

Я также сталкиваюсь с этой проблемой. Я добавляю эту строку signingConfig signingConfigs.release в android > app > build.gradle > {buildType{release{ signingConfig signingConfigs.release }}}.

Следующее решение сработало для меня. Добавьте следующие две строки в ваш файл gradle.

    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        **signingConfig
        debuggable = false**
    }

В моем случае это произошло потому, что я выбирал папку отлаживать вместо папки выпуска в своем проекте в качестве места назначения для Android App Bundle.

Мне понадобился App Bundle для внутреннего тестирования, поэтому, думаю, поэтому я выбрал его естественным образом.

Я столкнулся с этой ошибкой в ​​наших приложениях. Мы используем один и тот же ключ загрузки для всех наших приложений.

Поэтому, когда вы создаете новое приложение, убедитесь, что вы выбрали вариант Use an existing key that you sign an app with вместо параметра (Google recommended), который должен отправить им уникальный ключ загрузки.

Действительно раздражает то, что эту опцию можно выбрать только один раз, поэтому нам пришлось удалить наше приложение и создать его заново.

Просто создайте новый ключ, и он должен загрузиться.

Разве это не то, что ОП уже пробовал? Говорят I've even tried creating a whole new keystore with a new key in it, but always get the same error.

Eric Aya 31.12.2020 11:47

Это нежелательно, поскольку на разработчика возлагается дополнительная нагрузка по управлению ключами и хранилищами ключей.

William Grand 16.06.2021 16:13

обязательно измените отладку приложения на false в файле build.gradle

Интересно, почему Android Studio не показывает никаких предупреждений из-за этого...

manuelpgs 31.10.2021 00:06

Другие вопросы по теме