Я пытаюсь интегрировать новый API обновлений в приложении, но не могу протестировать его реализацию. Похоже, мой код в порядке, поэтому я прочитал Устранение неполадок и не могу понять 2 пункта в этом документе.
Make sure that the app that you are testing is signed with the same signing key as the one available from Google Play.
If the app you are testing doesn’t appear with an available update, check that you’ve properly set up your testing tracks.
В любом случае, я просто хочу протестировать на своем устройстве, и я уменьшил код версии из версии в магазине игр, но он всегда отображается UPDATE_NOT_AVAILABLE.
Вот код: -
val appUpdateInfo: Task<AppUpdateInfo> = appUpdateManager.appUpdateInfo
appUpdateInfo.addOnSuccessListener {
if (it.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && it.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
appUpdateManager.startUpdateFlowForResult(it, AppUpdateType.FLEXIBLE, this, 2);
}else{
toast("Not Available")
}
}
Нет, не сейчас, если вам случится разобраться в этом в будущем, поделитесь им.
Какое-нибудь решение найдено?
Пока нет.)
Работает на меня. Создайте подписанный apk с более низкой версией. Это будет работать!!
Используете ли вы Android App Bundle в магазине Play?
@gautamkumar да, я использую App Bundle. Это не будет работать с App Bundle?
@gautamkumar вы нашли приемлемое решение?
@Arbaz.in developer.android.com/guide/app-bundle/…
На первый вопрос они говорят, что вам нужно сделать выпускную сборку приложения, используя ваше хранилище ключей выпуска. Затем вы можете прикрепить полученный файл .apk к электронному письму и отправить его себе по электронной почте. Затем проверьте свою электронную почту на устройстве Android и загрузите вложение .apk к своим загрузкам, и в конце загрузки Android должен спросить, хотите ли вы установить .apk, скажите «да» (если он не спросит , затем нажмите на файл в папке загрузок, и тогда он должен спросить).
Что касается второго вопроса, единственный способ, которым я могу представить тестирование этого с помощью внутренних тестовых дорожек, поскольку вам нужно взаимодействовать с витриной магазина Google Play, но не влиять на ваш опубликованный выпуск.
Также есть FakeAppUpdateManager, созданный для таких целей. Вы можете использовать его.
Спасибо за помощь, все еще не могу показать пользовательский интерфейс из него, он написан в документе «Эта реализация полностью автономна в библиотеке и не взаимодействует с Play Store. По этой причине пользовательский интерфейс не отображается и не обновляется. действительно исполняется»
Во-первых, вам нужно опубликовать свое приложение в Google Play. Удостоверься что:
Если вы хотите иметь рабочее демонстрационное приложение, я загрузил git-репозиторий с более низким кодом версии, чем тот, который у меня есть опубликовано в Google Play.
Я попробовал ваш проект GitHub, но он выдает ошибку AppUpdateService : Failed to bind to the service.
Ой. Это потому что ты не подписал приложение моими ключами. Репозиторий предназначен только для исходного кода рабочего демо-приложения, ключи подписи не публикуются. Тем не менее, я уже загрузил в репозиторий подписанный демо-apk, готовый к установке. Пожалуйста, проверьте это.
Спасибо за ответ. если я пытаюсь с моим проектом, могу ли я проверить отладочную сборку или только подписанный apk, он работает?
Если вы пробуете это со своим проектом, вам, вероятно, следует попробовать реализовать его в своем собственном приложении, подписанном и опубликованном в Google Play. Публикация через каналы альфа- или бета-тестирования может помочь вам в этом, поэтому она не повлияет на ваше рабочее приложение. Для демонстрации будет работать только подписанный apk, так как для библиотеки Play Core требуется подписанный apk. К сожалению, из-за проблем с безопасностью я не могу поделиться ключами, которые я использовал для подписи этого приложения.
Хорошо, но как во время разработки мы проверяем отладочную сборку?
Вы должны подпишите свой отладочный apk с той же подписью, которую вы использовали в своей версии Play Store.
Вы можете протестировать свою реализацию с помощью отладочной сборки, но экран потока обновления не откроется с помощью startUpdateFlowForResult.
@kevintresuelo Попробовал ваш apk по ссылке github, но по-прежнему не показывает никаких обновлений.
А как насчет приложения, которое выбрало Google Signing-In? Мы используем ключ загрузки для подписи и загрузки APK, но Google Play использует свой собственный ключ подписи, уникальный для нашего приложения, для распространения. У нас нет доступа к этому ключу подписи.
Я столкнулся с той же проблемой, и после двойной проверки всего остального это может быть связано с тем, что я выбрал вход в Google. @nitinkumarp вам удалось обойти это?
Я установил свое приложение из Google Play. Затем я удалил его и установил подписанный apk с более низким кодом версии.
"In-app updates are available only to user accounts that own the app. So, make sure the account you’re using has downloaded your app from Google Play at least once before using the account to test in-app updates." developer.android.com/guide/app-bundle/in-app-updates
Вы используете Android App Bundle или Apk? . После установки apk с более низким значением я получаю сообщение «Это приложение не было установлено Google без обновления».
Apk. Это работает для меня: 1. Установите мое приложение из Google Play. 2. Удалите это приложение с моего смартфона. 3. Установите подписанный apk с более низким кодом версии.
Сначала попробуйте установить приложение из Google Play на свое устройство электронной почты. Затем удалите свое приложение и установите apk напрямую (не из Google Play).
У вас есть ожидание после публикации, это занимает от 2 до 6 часов.
Если вы публикуете на внутреннюю дорожку, это происходит практически мгновенно.
я публикую приложения во внутреннем тесте, это занимает несколько часов :/ например, 1+ час
У меня была аналогичная проблема с UPDATE_NOT_AVAILABLE. После нескольких часов исследований, вот как я решил:
используйте магазин Google Play для установки версии тестового приложения (я использовал развертывание внутреннего тестового трека)
разверните другую версию с более высоким КОДОМ ВЕРСИИ на Play Console (тот же внутренний тестовый трек)
закройте как тестовое приложение, так и магазин Google Play (не просто вернитесь домой, используйте последний ключ и смахните их)
откройте магазин Google Play и убедитесь, что для тестируемого приложения доступно обновление (вы можете проверить его в разделе «Мои приложения и игры» > «Установлено»)
теперь откройте приложение для тестирования и проверьте наличие UPDATE_AVAILABLE
Это работает для меня почти сразу после развертывания
Основные требования для ручного тестирования
Чтобы вручную выполнить полный поток обновления на тестовом устройстве, у вас должно быть как минимум две версии приложения с разными номерами версий: исходная версия и целевая версия.
Update is Not Available ERROR
Прежде всего, пожалуйста, перепроверьте требования, упомянутые выше. Если вы успешно выполнили вышеперечисленные шаги с соблюдением всех требований и по-прежнему получаете ошибку, обратите внимание на следующий трюк. Наиболее вероятная причина в том, что приложение Google Play еще не знает об обновлении из-за внутреннего механизма кэширования. Чтобы убедиться, что у вас есть свежий кеш при тестировании вручную, вы можете обновить кешированную версию, перейдя на экран «Мои приложения и игры» в приложении Google Play. Другое, альтернатива, вы можете просто очистить кеш приложения Google Play в настройках. Обратите внимание, что это просто проблема для тестирования и не влияет на конечных пользователей, поскольку кеш в любом случае обновляется ежедневно.
Примечание — App Bundle не является обязательным для IAU.
Нужно ли загружать более раннюю версию APK в магазин игр, а затем загружать его для тестирования? @Arpit
@MaulikDodia APK более высокой версии должен быть опубликован в Google Play, затем установите APK более низкой версии с функцией IAU на свое устройство. Таким образом, функция IAUs будет активирована только в том случае, если номер версии в Google Play выше, чем фактическая версия приложения на устройстве.
Я сделал то же самое. Но не повезло. Я всегда получаю UPDATE_NOT_AVAILABLE на addOnSuccessListener. Можете ли вы помочь мне? Не могли бы вы проверить мой комментарий к ответу @Oleg?@Arpit
возникает та же проблема, все то же самое, что и в коде обновления приложения, но, к сожалению, получение UPDATE_NOT_AVAILABLE, даже если я установил более низкую версию приложения
Поскольку Арпит Дж. предложил основные основные требования для тестирования приложения, если вы все еще не можете успешно протестировать приложение, я хотел бы добавить еще один последний шаг, который поможет вам быстро протестировать приложение.
Перейдите к информации о приложении Play Store из настроек, как показано на изображении, и очистите данные, как показано на прикрепленных снимках экрана. Шаги для перехода к информации о приложении Play Store могут различаться в зависимости от устройства.
иногда это настоящая причина, это случилось со мной
Я боролся с этой же проблемой в течение нескольких дней, прежде чем снова тщательно изучить документацию. Прочтите эта секция в официальной документации по обновлениям в приложении.
Ссылка описывает правильную процедуру тестирования следующим образом:
- On your test device, make sure you've already installed a version of your app that meets the following requirements:
- Follow the Play Console instructions on how to share your app internally. Make sure you upload a version of your app that uses a version code that's higher than the one you have already installed on the test device.
- On the test device, only click the internal app-sharing link for the updated version of your app. Do not install the app from the Google Play Store page you see after clicking the link.
- Open the app from the device's app drawer or home screen. The update should now be available to your app, and you can test your implementation of in-app updates.
Это также очень полезно, потому что вам не нужно ждать публикации приложения, вы можете сразу начать тестирование.
Ссылка на решение приветствуется, но убедитесь, что ваш ответ полезен и без нее: добавить контекст вокруг ссылки, чтобы ваши коллеги-пользователи имели некоторое представление о том, что это такое и почему оно существует, а затем процитируйте наиболее важную часть страницы, на которую вы ссылаетесь, в если целевая страница недоступна. Ответы, которые представляют собой чуть больше ссылки, могут быть удалены.
@ChrisMM Спасибо за рекомендацию, я соответственно обновил ответ.
Спасибо, это решение сработало для меня. Что я хочу добавить, так это то, что после того, как вы добавите новое обновление в Google Play, обязательно наберитесь терпения и подождите некоторое время (IDK, сколько именно, для меня это заняло 5 минут), пока API Google Play не начнет отправлять информацию о новом обновлении в старое приложение. версии.
документация изменилась, поэтому правильная ссылка developer.android.com/guide/playcore/in-app-updates/тест
Спасибо @om252345, я обновил свою ссылку в ответе.
Наконец, решил это, удалив приложение из Play Store -> Мои приложения и игры -> Библиотека.
Это происходит, если вы ранее установили то же приложение с кодом более высокой версии на свое устройство или любое устройство, которое использует тот же адрес Gmail в Play Store. Надеюсь это поможет.
Внутренний общий доступ к приложениям не работает на реальном устройстве. Я тестировал несколько часов и всегда получал последнюю версию Внутренний тест, а не Внутренний обмен приложениями, как я ожидал.
Описываю пошагово:
APK 1: versionCode and versionName: 100
APK 2: versionCode and versionName: 101
Загрузите APK 1 в внутреннее совместное использование приложений с кодом версии и названием версии 100.
Скопируйте и вставьте общую ссылку APK 1 в веб-приложение Вести заметки.
Наконец, каждый раз, когда они вводят ссылку с кодом версии, превышающей код последней установленной из эмулятора, они будут видеть наличие нового обновления, которое должно быть установлено в приложении, а не в Play Store.
Стоит отметить, что Логкэт совместим с внутренним общим доступом к приложениям.
ГЛ
На сегодняшний день тестирование обновлений в приложении невозможно для отладочной сборки. Вам также не нужно помещать apk в PlayStore для тестирования. Лучший способ проверить in-app-update — использовать internal-app-sharing.
Если вы выполните следующие шаги один за другим, вы сможете успешно протестировать.
in-app-update тестирование на своем устройстве, https://developer.android.com/guide/playcore/in-app-updates#internal-app-sharingЗдесь я напишу то же самое простыми словами.
После того, как вы закончите настройку internal-app-sharing в Play-Store, убедитесь, что вам нужно загрузить 2 apk для внутреннего обмена приложениями на Play-Console и, следовательно, сгенерировать 2 ссылки. Оба apk будут подписаны с использованием одного и того же signing-key (не обязательно совпадать с тем, который вы используете для подписи для производства, подойдет любой фиктивный ключ подписи).
Чтобы узнать, как загрузить apk для внутреннего обмена приложениями на Play-Console, следуйте этому лиску, https://support.google.com/googleplay/android-developer/answer/9844679?visit_id=637437125318137239-1277036129&rd=1
ПРИМЕЧАНИЕ: убедитесь, что вы удалили все предустановленные приложения с таким же именем пакета на вашем устройстве.
ПРИМЕЧАНИЕ. Перед установкой убедитесь, что идентификатор электронной почты, который вы используете в игровом магазине, добавлен в список рассылки внутреннего общего доступа к приложениям на игровой консоли.
Теперь, когда вы установили приложение по ссылке. Теперь вам нужно снова создать новый подписанный apk с более высоким VersionCode (скажем, 101). И загрузите этот apk во внутренний общий доступ к приложениям.
Теперь скопируйте ссылку с более высоким VersionCode из внутреннего общего доступа к приложениям. Нажмите на эту ссылку на своем устройстве, и вы перейдете в магазин игр, но на этот раз будет активна кнопка update, а не кнопка install, поскольку приложение уже установлено на вашем устройстве с более низким кодом версии.
Вам не нужно нажимать кнопку обновления в PlayStore. Вам просто нужно щелкнуть ссылку и, следовательно, открыть экран в PlayStore. Теперь закройте приложение PlayStore.
Теперь вы можете запустить уже установленное приложение со своего устройства.
Если с вашей реализацией обновления в приложении все в порядке, при запуске приложения появится диалоговое окно из PlayStore для обновления.
Lastly, don't forget to upvote if it helps you in any way. Keep Coding!
Один момент, который работает, так и не был упомянут в Documented. пункт 6, спасибо за помощь
Я выполнил шаги и, наконец, во время отладки, используя ссылку из внутреннего общего доступа к приложениям, он был перенаправлен в магазин игр с открытым моим приложением, но в нем отсутствует кнопка «Установить»! Мое приложение поддерживается только в США. Пробую из другой страны. Может ли это быть причиной? Пожалуйста, уточните, спасибо.
@ Абхишек Кумар, ты спас мой день. Спасибо.
Я столкнулся с той же проблемой. Вы смогли разобраться?