it-roy-ru.com

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

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

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

Любая помощь о том, как решить эту проблему?

236
Gatekeeper

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

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

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

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

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

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

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

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

P.S: Отладка с помощью сертификата выпуска: https://stackoverflow.com/a/15754187/1321401 (Thnx @dipp для ссылки)

П.П.С .: Хотел сделать этот список уже давно.

Thnx @zlgdev , @Kyone , @MinosL для обновлений

288
Luten

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

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

129
sandalone

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

Если вы используете Android.test.purchased в качестве SKU, он будет работать полностью, но в окончательном ответе у вас не будет developerPayload.

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

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

45
Chirag Patel

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

9
Law Gimenez

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

Settings -> Account details -> License Testing -> учетные записи Gmail с тестовым доступом

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

8
Pablo Cegarra

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

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

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

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

  • Сгенерированный подписанный apk типа сборки 'release'.
  • Вручную установлен апк.
3
Shree Harsha S

Это произойдет, если вы используете другую версию apk, чем та, что в Google Play.

2
Amalka

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

1
Søren

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

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

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

1
Epsilon3

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

  1. Отправьте в Google Play версию вашего приложения с разрешением IAB в манифесте:

  2. Добавьте продукт в свое приложение в Google Play: Администрирование биллинга в приложении

  3. Установите пользовательское отладочное хранилище ключей со знаком: Настройте Eclipse для использования подписанного хранилища ключей

1
Pablo

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

1
goRGon

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

0
JDenais

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

0
Gal Rom

Проблема также возникает, когда вы добавили покупку в приложении после загрузки APK, но вы не опубликовали приложение в Play Store (альфа, бета и производство). 

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

0
DZDomi

РЕШЕНИЕ

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

0
Ali Akram

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

0
Sagar Pithiya