Доброго времени суток! При добавлении новой версии приложения выдает такую ошибку в Publish Play Market: "Загруженный APK-файл или набор Android App Bundle был подписан в режиме отладки. Подпишите файл или набор в режиме выпуска." До этого вообще файла подписей не создавал, вкладку Publish Setting не трогал, то есть просто стояла галочка "Use Exiting Keystore", и закачивались обновления все нормально. Вот сегодня магия какая-то случилась. Что пробовал: 1) поменять дату на день раньше, вдруг google тупит... 2) пытался создать новый файл подписей, но теперь google ругается что ключи не совпадают... 3) галочку с development build снял, после этого unity перезапустил, в аккаунт разработчика перезашел, старый apk удалил и по-новой забилдил. Все равно google считает что apk подписан в режиме откладки... Подскажите кто что может.
Не, не нашел. На западном форуме тоже один ответил, что похожая проблема, сказал может связано с 2018 Unity... Я конечно понимаю, что сам виноват, что не подумал о подписи приложения и хранилище ключей заранее, но блин, где ни читаю, везде пишут, что без подписи вообще нельзя его опубликовать. Тогда как приложение публиковалось до этого?! И если я 2 месяца публиковался, что ж сейчас то случилось...
дело не в Unity2018,я собираю в Юнити 5.6.6,тоже более полугода все нормально было проблем небыло. Даже Юнити2018 пробовал,результата нет.Да и дело не в хранилище ключей,у меня подписаны приложения,и к хранилищю ключей имею доступ,даже проверял какими ключами подписаны приложения sha1,md5,sha256, все совпадает с теми котрые в консоли в Google Play,а не публикует
А вы случайно не знаете ответ на вопрос, каким образом я публиковался без хранилища ключей?) Может Unity и Google мне автоматически создавали какой-то ключ и мне можно его вернуть? Еще в Play Console Help нашел функцию "For apps enrolled in Google Play App Signing: To request a reset to your upload key, contact us." Типо сброс ключа, не вкурсе, что мне это даст? Могу ли я теперь подсунуть свое хранилище ключей, сгенерированное в Unity?
Кароче, как я понял, если подписывал приложение через Google Play App Signing (а видимо я его так и подписал, потому что keystore у меня вообще не было и Publish Settings я не трогал), то есть возможность сбросить ключ или подкрепить новый. Написал им в саппорт, жду.
Отвечают в течении 2 рабочих дней, СБ ВС выходные. Мне ответили вчера, что можно попробовать скинуть upload key, но это поможет только в случае если я использовал debug key как upload key. Вот так: "reseting Upload key will only help if you used the debug key to sign the app as upload key, not app signing key" Оказывается их вообще два и сбросить можно только который от гугла (upload key), причем оба могут быть и release и debug, НО при этом везде пишут что с debug key нельзя публиковаться. Запутался кароче. И еще, вот Unity генерирует *.keystore, а Google Play просит *.pem. Каким образом его можно перекодировать?!
Рассказываю для всех, что узнал на сегодня, может кому-нибудь поможет в будущем. Если при публикации приложения вы воспользовались программой Google Play App Signing (а если вы также как я публиковались, не задумываясь о подписи и вообще забили болт, то скорее всего так оно и есть), то у вашего приложения два ключа: app signing key и upload key. Как я понял, в такой случае app signing key генерируется и охраняется Гуглом, а upload key является ключом, который был создан через Unity в Publish Settings. Для того, чтобы проверить каким все-таки ключом у вас подписано приложение нужно сверить сертификаты. СВЕРКА СЕРТИФИКАТОВ 1) Ищем хранилище ключей: а) если вы не создавали хранилище ключей, то скорее всего билд подписан debug.keystore, который находится в "\Пользователи\*Имя пользователя*\.android\debug.keystore"; б) второй вариант, если вы создавали хранилище ключей, то сами знаете, где он лежит. 2) Открываем хранилище ключей с помощью keytool через командную строку (внизу ссылка, как включить keytool для cmd). Пример (допустим keystore.keystore лежит в папке D:\Unity): C:\Users\*********>cd D:\Unity D:\Unity>keytool -list -v -keystore keystore.keystore *У debug keystor'а нету пароля, поэтому просто жмем Enter.* Проверяем Owner, Issuer, если CN=Android Debug, значит это debug key. Также смотрим MD5, SHA1, SHA256. 3) Заходим в Publish Console->Выбираем приложение->Управление релизом->Подписи приложений. Тут корявый перевод, на самом деле сверху - app signing key, а снизу - upload key (а не загрузка сертификата). Сверяем MD5, SHA1, SHA256. В моем случае upload key совпал с debug.keystore. РЕШЕНИЕ ПРОБЛЕМЫ "Загруженный APK-файл или набор Android App Bundle был подписан в режиме отладки. Подпишите файл или набор в режиме выпуска." Сразу скажу проблема возникла у многих, причем с 1 августа 2018, некоторые решили, что связано с обновлением Unity 2018.2, но 100% не из-за этого. Что-то случилось с автоматической подписью у Unity и Google Play. Тем не менее нашел инфу недавно непроверенную, что debug.keystore действителен только в течении полугода, может быть с этим связано. Помимо перевыпуска приложения можно попробовать сбросить тот самый upload key. Для этого пишем ребятам в саппорт https://support.google.com/googleplay/android-developer/#topic=3450769 -> Contact us -> Publishing app on Google Play -> &keystore issues -> For apps enrolled in Google Play App Signing: To request a reset to your upload key, contact us Составляем форму, просим сбросить ключ и прикрепляем экспортированный из нового ключа сертификат upload_certificate.pem. Как создать ключ и сертификат смотрим ниже. ГЕНЕРАЦИЯ .KEYSTORE И ЭКСПОРТ В ФОРМАТ .PEM Сгенерировать ключ можно через Android Studio, CMD, и конечно же через Unity. Unity генерирует ключ в формате *.keystore, прошу заметить, что для нашего случая разницы между *.keystore и *.jks НЕТУ! Для того, чтобы создать ключ через cmd: keytool -genkeypair -alias <upload> -keyalg RSA -keysize 2048 -validity 9125 -keystore <keystore.jks>, отвечаем на все вопросы, для Country code пишем RU Для того, чтобы экспортировать уже созданный ключ в сертификат: keytool -export -rfc -alias <upload> -file <upload_certificate.pem> -keystore <keystore.jks> *<> помечены места, которые вы должны сами заполнить
Пока, нет, жду 11 августа, когда новый ключ вступит в силу. Думаю, что все нормально будет. Смущает пока только то, откуда берется ключ, который сверху, то бишь app signing key который. И если он у меня debug, то придется перевыпускаться)