Эта ошибка может быть вызвана несколькими причинами.
Вот список требований для тестирования Google IAB.
Предпосылки:
- AndroidManifest должен включать разрешение «com.android.vending.BILLING» .
- APK построен в режиме релиза .
- APK подписан с сертификатом (ами) выпуска . (Важно: с «Подписыванием приложений в Google Play» это работает, только если вы загружаете напрямую из GooglePlayStore!)
- APK загружается в альфа / бета канал распространения (ранее - как черновик) на консоль разработчика хотя бы один раз (занимает некоторое время ~ 2-24 часа ).
- Продукты IAB опубликованы, и их статус установлен как активный .
- Тестовые аккаунты добавлены в консоль разработчика.
Требования к тестированию:
- Test APK имеет тот же код версии, что и загруженный на консоль разработчика.
- Test APK подписан тем же сертификатом (ами), что и сертификат, загруженный на dev.console.
- Тестовый аккаунт (не разработчик) - это основной аккаунт на устройстве. (Основной аккаунт может быть не нужен - согласно комментарию @MinosL )
- Тестовый аккаунт включен в качестве тестера и привязан к действительному способу оплаты . ( @Kyone )
PS: отладка с использованием сертификата выпуска : https://stackoverflow.com/a/15754187/1321401 ( Thnx @dipp для ссылки)
PPS: хотел сделать этот список уже давно.
Thnx @zlgdev , @Kyone , @MinosL обновлений
Ааа нашел решение после попытки в течение нескольких часов.
источник
То же самое произойдет, если ваша опубликованная версия не совпадает с версией, которую вы тестируете на своем телефоне.
Например, загруженная версия есть
android:versionCode="1"
, а версия, которую вы тестируете на своем телефоне,android:versionCode="2"
источник
android:versionCode="1"
и телефон вandroid:versionCode="2"
порядке, или я должен изменить мой apk google play?Вы должны подписать свой APK с вашим действующим сертификатом. Затем установите это на своем тестовом устройстве. Затем вы можете проверить InAppBilling. Если вы тестируете свое приложение путем прямого запуска через eclipse на устройство (в режиме отладки), вы получите эту ошибку.
Если вы используете
android.test.purchased
SKU, он будет работать полностью, но в окончательном ответе у вас не будет developerPayload.Если вы используете свой собственный черновик в элементе приложения, вы можете протестировать его полностью, но с вас будет взиматься плата, поэтому впоследствии вам придется возвращать его самостоятельно.
Вы не можете покупать товары с той же учетной записью Gmail, которую используете для консоли разработки Google Play.
источник
В консоли разработчика:
Settings
->Account details
->License Testing
-> Аккаунты Gmail с тестовым доступоми введите здесь свои учетные записи
источник
Если вы находитесь здесь с 2018 года, вам нужно скачать APK прямо из Play Store и установить «производный» APK. Возможно, это связано с тем, что в Google Play Store есть функция «Подписание приложения в Google Play».
источник
Это произойдет, если вы используете другую версию apk, чем та, что в Google Play.
источник
Позвольте мне просто добавить, что случилось со мной, может помочь кому-то.
Это было главным образом из-за подписания.
Поскольку я добавил детали подписи в структуру проекта, я думал, что каждый раз, когда я запускаю, устанавливается ожидаемый подписанный apk. Но тип сборки «отладка» был выбран.
Ниже исправление решило проблему для меня.
источник
В моем случае я видел одно и то же сообщение из-за разных подписей установленного apk и загруженного в market apk.
источник
Вопреки многочисленным ответам и комментариям на SO и других сайтах, вам НЕ нужно выполнять предварительные тесты с альфа / бета-версией вашего продукта, которая была загружена из Google Play на ваше тестовое устройство (процесс публикации альфа / бета часто истощается пол дня). Также вам не нужно загружать и повторно загружать подписанный APK-релиз из вашей студии разработчиков на тестовое устройство.
Вы можете отладить предварительную версию Google Play в сервисах биллинга приложений, используя приложение отладки, загруженное из вашей студии разработчиков непосредственно на тестовое устройство через ADB. Если вы столкнулись с ошибками, которые мешают этому, скорее всего, вы сделали что-то не так в своем коде. Обратите особое внимание на CASE ваших SKU (идентификаторов продуктов) и их формат (например, если вы загружаете свой APK как com.mydomain.my_product_id, убедитесь, что вы пытаетесь приобрести его таким образом, предоставляя тот же регистр и домен) , Кроме того, обратите особое внимание на ваш itemType - это должно быть «inapp» или «subs» для управляемых / неуправляемых покупок приложений или подписок, соответственно.
В соответствии с предложением Chirag Patel, при условии, что вы правильно установили свой код оплаты, проведите все тестирование с помощью android.test.purchased Sku (идентификатор продукта) во время предварительных тестов. Проверяйте этот идентификатор на протяжении всех операций выставления счетов, чтобы пройти через проверку подписи, токена и полезной нагрузки, поскольку эти данные не предоставляются тестовой системой Google. Кроме того, присвойте одному из своих тестовых продуктов этот идентификатор, чтобы проверить его покупку, разблокировку / загрузку и презентацию на протяжении всей схемы. Чтобы ОЧИСТИТЬ покупку, просто потребьте ее, передавая тот же Sku И строку токена, отформатированную таким образом - никакие другие поля не имеют значения:
После завершения этого этапа тестирования перейдите к полуживому тестированию с вашим альфа / бета-продуктом. Создайте группу Google (по сути список рассылки), добавьте в нее электронные письма своих тестовых пользователей и добавьте / пригласите эту группу для тестирования вашего устройства на этом этапе (выполняется в разделе «APK» в списке разработчиков Google вашего приложения). Покупки будут смоделированы, но фактически не оплачиваются - однако, чтобы очистить и повторно протестировать покупки, Google указывает, что вы должны вернуть их из своего кошелька Google. Это единственный этап тестирования, который требует трудоемкого процесса использования альфа / бета-загрузок и тестирования пользователей.
источник
Если вы хотите отладить IAB, вам нужно сделать следующее:
Отправьте в Google Play версию своего приложения с разрешением IAB в манифесте:
Добавьте продукт в свое приложение в Google Play: Администрирование биллинга в приложении
Установите пользовательское отладочное хранилище ключей со знаком: Настройте Eclipse для использования подписанного хранилища ключей
источник
Была такая же проблема, и она не была решена, прежде чем я прочитал пост от DZDomi. Неожиданно оказалось, что в консоли разработчика Google есть параметр, который необходимо включить. В разделе «Покупки внутри приложения» есть строка для вашего продукта, а справа - статус для него. Это должно быть АКТИВНО!
источник
Моя проблема заключалась в том, что я пытался проверить это с помощью debug.keystore, я имею в виду запуск его через eclipse. Я экспортировал его с хранилищем ключей, с которым я опубликовал в альфа-режиме (его необходимо опубликовать, прежде чем вы сможете его проверить). мой телефон и чем я мог проверить это нормально.
источник
Проблема также возникает, когда вы добавили покупку в приложении после загрузки APK, но не опубликовали приложение в игровом магазине (альфа, бета и производство).
Что в основном означает, что вы должны добавить покупку в приложении ПОСЛЕ того, как вы опубликовали apk в магазине Play (альфа, бета и продакшн). В противном случае вы не сможете приобрести или запросить покупку в приложении.
источник
Другая причина, не упомянутая здесь, заключается в том, что вам нужно тестировать на реальном устройстве. С эмулятором становится действительно хорошо, это легко сделать ошибку.
источник
Недавно Google внедрил изменения в своих системах, и, поскольку вы загрузили хотя бы один APK-файл на свою консоль, вы можете проверить свои внутриигровые запросы в приложении с любым кодом / номером версии.
Перекрестная ссылка ССЫЛКА
источник
РЕШЕНИЕ
Просто подождите некоторое время после загрузки приложения в игровой магазин, потому что Google занимает некоторое время, чтобы обновить версии приложения. Это будет работать!
источник
У меня такая же проблема в moto c2 +, в моем случае это проблема устройства, как только я перезагружаюсь, тогда он будет работать идеально ...
источник