Эта версия приложения не настроена для выставления счетов через Google Play

Когда я пытаюсь запустить мое приложение с биллингами в приложении, я получаю сообщение об ошибке: "Эта версия приложения не настроена для выставления счетов через Google Play. Для получения дополнительной информации обратитесь в справочный центр.

У меня есть разрешение на выставление счетов уже в файле манифеста, и у меня есть подписанный .apk, загруженный как черновик в Google Play, и я также установил тот же самый подписанный apk на свой телефон.

Любая помощь в решении этой проблемы?

Ответ 1

Ahh нашел решение после попытки в течение нескольких часов.

  • Google занимает некоторое время, чтобы обрабатывать приложения и обновлять их на своих серверах, для меня это занимает около полудня. Поэтому, сохранив apk как черновик в Google Play, вы должны подождать несколько часов, прежде чем продукты в приложении будут нормально реагировать и разрешить регулярные покупки.
  • Экспортировать и подписывать APK. Неподписанный APK, пытающийся совершить покупки, получит ошибку.

Ответ 2

Эта ошибка может быть вызвана несколькими причинами.

Вот список требований для тестирования Google IAB.

Предпосылки:

  1. AndroidManifest должен включать разрешение "com.android.vending.BILLING".
  2. APK построен в режиме релиза.
  3. APK подписан с сертификатом (ами) выпуска.
  4. APK загружается в альфа/бета канал распространения (ранее - в виде черновика) на консоль разработчика как минимум один раз. (занимает некоторое время ~ 2-24 часа).
  5. Продукты IAB опубликованы, и их статус установлен как активный.
  6. Тестовые аккаунты добавлены в консоль разработчика.

Требования к тестированию:

  1. Test APK имеет тот же код версии, что и загруженный в консоль разработчика.
  2. Test APK подписан тем же сертификатом (ами), что и сертификат, загруженный в dev.console.
  3. Тестовый аккаунт (не разработчик) - это основной аккаунт на устройстве. (Основной аккаунт может быть не нужен - согласно комментарию @MinosL)
  4. Тестовый аккаунт включен в качестве тестера и связан с действительным методом оплаты. (@Kyone)

PS: отладка с использованием сертификата выпуска: fooobar.com/questions/31936/... (Thnx @dipp для ссылки)

PPS: хотел сделать этот список уже давно.

Спасибо @zlgdev, @Kyone, @MinosL за обновления

Ответ 3

То же самое произойдет, если ваша опубликованная версия не совпадает с версией, которую вы тестируете на своем телефоне.

Например, загруженная версия android:versionCode="1", а версия, которую вы тестируете на вашем телефоне, составляет android:versionCode="2"

Ответ 4

Вам нужно подписать свой APK с вашим живым сертификатом. Затем установите это на свое тестовое устройство. Затем вы можете проверить InAppBilling. Если вы тестируете свое приложение путем прямого запуска через eclipse на устройство (в режиме отладки), вы получите эту ошибку.

Если вы используете android.test.purchased как SKU, он будет работать полностью, но у вас не будет окончательной реакции разработчика на загрузку.

Если вы используете свой собственный проект в приложении, вы можете протестировать весь путь, но вам будет предъявлено обвинение, и поэтому он должен будет вернуть его самостоятельно впоследствии.

Вы не можете покупать товары с той же учетной записью gmail, что и для консоли разработчика Google Play.

Ответ 5

В консоли разработчика:

SettingsAccount detailsLicense Testing → Учетные записи Gmail с доступом для тестирования

и введите здесь свои учетные записи

Ответ 6

Если вы находитесь здесь с 2018 года, вам нужно скачать APK прямо из Play Store и установить "производный" APK. Возможно, это связано с тем, что в Google Play Store есть функция "Подписание приложения в Google Play".

Ответ 7

Позвольте мне добавить, что со мной произошло, может помочь кому-то.

В основном это было связано с подписанием.

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

Ниже исправлено решение проблемы для меня.

  • Сгенерировано подписанное apk типа сборки 'release'.
  • Вручную установлена ​​apk.

Ответ 8

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

Ответ 9

В моем случае я увидел одно и то же сообщение из-за разных подписей установленного apk и загруженного на рынок apk.

Ответ 10

Вопреки многим ответам и комментариям на 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 AND строку-токен, отформатированную таким образом - никаких других полей не актуально:

    "inapp:"+appContext.getAppContext().getPackageName()+":android.test.purchased";

Как только вы закончите этот этап тестирования, перейдите к полу-живому тестированию с помощью вашего альфа/бета-продукта. Создайте группу Google (по существу, список рассылки), добавьте к ней свои тестовые электронные письма и добавьте/пригласите эту группу для тестирования вашего устройства на этом этапе (выполняется в разделе "APK" вашего приложения для разработчиков Google). Покупки будут имитированы, но фактически не будут взиматься. Однако, чтобы очистить и перепроверить покупки, Google указывает, что вы должны вернуть их из своего кошелька Google. ЭТО является единственным этапом тестирования, требующим трудоемкого процесса использования альфа-бета-нагрузок и тестовых пользователей.

Ответ 11

Если вы хотите отладить IAB, что вам нужно сделать, это:

Ответ 12

Была та же проблема, и она не была решена до того, как я прочитал сообщение от DZDomi. Внезапно появилось, что в консоли разработчика Google есть настройка, которую необходимо включить. В разделе "В покупках приложений" есть строка для вашего продукта и далека от него статус. Это должно быть АКТИВНО!

Ответ 13

Моя проблема заключалась в том, что я пытался проверить это с помощью debug.keystore, я имею в виду запустить его через eclipse.I экспортировал его с хранилищем ключей, с которым я опубликовал в альфа-режиме (он должен быть опубликован, прежде чем вы сможете его протестировать). установил его в свой телефон, и я мог нормально его протестировать.

Ответ 14

Проблема также возникает, когда вы добавили покупку в приложение после того, как вы загрузили apk, но вы не опубликовали приложение в магазине воспроизведения (alpha, beta и production).

Что в основном означает, что вам нужно добавить покупку In-App ПОСЛЕ того, как вы опубликовали apk в Play Store (альфа, бета и производство). В противном случае вы не сможете приобрести или запросить покупку In-App.

Ответ 15

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

Ответ 16

РЕШЕНИЕ

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

Ответ 17

У меня та же проблема в мото c2+, в моем случае это проблема устройства, как только я перезагружаюсь, он будет работать идеально...

Ответ 18

В моем случае проблема исчезла при запуске в режиме релиза.

Ответ 19

Недавно Google внес изменения в свои системы, и, поскольку вы загрузили хотя бы один APK файл на свою консоль, вы можете проверить свои запросы в приложении с помощью любого кода/номера версии.

Перекрестная ссылка ССЫЛКА

Настройте gradle чтобы подписать отладочную сборку для отладки.

android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file("my-release-key.jks")
            storePassword "password"
            keyAlias "my-alias"
            keyPassword "password"
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.release
            ...
        }
    }
}