Ошибка приложения: эта версия приложения не настроена для Market Billing.

91

Уже через пару дней можно использовать биллинг в приложениях для Android. Очень круто конечно. Итак, я начал работать над обновлением для своего приложения, чтобы реализовать это. Но теперь у меня проблемы. Вот что я сделал:

  • Сначала я попробовал зарезервированные идентификаторы продуктов для тестирования статических ответов на биллинг в приложении. Работает без проблем.
  • Я загрузил на рынок черновик APK (с подписью производства, без подписи отладки), который включал разрешение com.android.vending.BILLING.
  • Когда я это сделал, я смог добавить в свое приложение на рынке «Продукты для продажи» и установить для него статус «Опубликовано».
  • Я создал тестового пользователя и перезагрузил свое устройство, чтобы сделать этого тестового пользователя основной учетной записью на моем тестовом устройстве.
  • Зарезервированный идентификатор продукта все еще работает.

Теперь возникает проблема. Когда я использую свой собственный идентификатор продукта (тот, который я добавил ранее, см. Выше), отображается диалоговое окно со следующим текстом:

« Ошибка приложения: эта версия приложения не настроена для Market Billing. Дополнительную информацию можно найти в справочном центре ».

В журнале нет ничего странного. Кто-нибудь знает, что я здесь делаю не так?

Питер Фортуин
источник

Ответы:

157

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

Серебряный
источник
8
Версии отладки в порядке, но они должны быть подписаны.
Барри Фрутман
1
Это необходимо для публикации приложения для тестирования элемента inApp. Я опубликовал элемент inapp и оставил приложение неопубликованным. извиняюсь, если вопрос глупый или не связанный.
Jana
@ jana нет необходимости публиковать приложение для тестирования в приложении, но да, есть необходимость в публикации продукта в приложении, иначе вы получите сообщение об ошибке на своем устройстве при тестировании продукта в приложении "Элемент не найден "
Усман Курд
21
Важно отметить, что, как и в некоторых других ответах, код версии вашего тестового приложения должен совпадать с кодом версии вашего черновика в Google Play. Итак, если вы начали с заполнителя v1 в Google Play, а затем подготовили реальное приложение как v2 - это реальное приложение необходимо загрузить в GP как черновик, прежде чем вы сможете завершить его тестирование.
Стив Хейли,
1
Недавно все изменилось, и теперь вам нужно опубликовать свое приложение на альфа-канале в Google Play, прежде чем можно будет продолжить тестирование IAP.
tenpn
43

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

Поэтому я советую вам подождать 1-2 часа после загрузки APK, а затем посмотреть, появляется ли по-прежнему «ошибка приложения».

Саймон К.
источник
Я просто хотел еще раз подтвердить, что этот ответ сработал для меня. Я получал эту ошибку, хотя версии приложения были правильными. Я ничего не делал, кроме как подождал несколько часов, и он начал работать правильно (я больше не видел ошибки).
Booger
4
Я согласен с этим: у меня тоже сработало подождать пару часов (на самом деле ждал всю ночь, поэтому я не знаю точного времени). Небольшой редакторский комментарий: обидно, что Google не смог дать более точное сообщение об ошибке для этого и избавил всех нас от множества проблем.
M Katz
Означает ли это, что я пользователь с более ранней версией приложения, чем текущая, не могу совершать покупки в приложении и должен сначала обновить приложение?
Кеду
34

Я тоже столкнулся с этой проблемой. Я наконец понял, что мое опубликованное приложение имело versionCode 3, мой черновик (неопубликованный apk с разрешением на выставление счетов) имел versionCode 4, а подписанный apk, который я использовал для тестирования биллинга в приложении, все еще имел versionCode 3. Как только я изменил versionCode на 4, я смог перейти на фактическую страницу продукта в приложении для покупки, которую я запрашивал.

ашуги
источник
22

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

Большое беспокойство здесь вызывает то, что мы увидим такое же поведение в производственной среде, т.е. мы выпускаем 1.0.0-1 с биллингом внутри приложения, затем мы выпускаем 1.0.0-2, и пользователи, использующие 1.0.0-1, будут невозможно совершить покупку или восстановить свои покупки и получить ту же ошибку (очень плохой пользовательский интерфейс). Искали документы на предмет упоминания об этом поведении как о специфическом для тестового режима, но пока безуспешно; мы добавили здесь ошибку: http://code.google.com/p/marketbilling/issues/detail?id=15#c0

jen_h
источник
3
+1 за дополнительную информацию, дальновидность и ссылку на ветку ошибок.
Bill The Ape
14

Я тоже столкнулся с той же проблемой ... но теперь проблема решена

Мои наблюдения основаны на нескольких испытаниях:

  1. Код версии должен совпадать как в Google Play, так и на устройстве.
  2. Даже если версии совпадают, мы все равно можем получить эту ошибку
  3. Подождите 1-2 часа, затем попробуйте, мы не получим эту ошибку

Надеюсь это поможет

user1444172
источник
1
Я также обнаружил, что код версии должен совпадать. По крайней мере, ваша тестовая версия не может быть выше той, что есть в Google Play. Я не уверен, что верно и обратное. Надеюсь, что нет, потому что это будет означать, что люди со старой версией приложения не смогут использовать мой биллинг в приложении.
Питер Фортуин
№3 была уловка. Если вы уверены, что все в порядке, сделайте перерыв и попробуйте позже. Ему просто нужно время, чтобы обновить :)
nuala
7

Скопировано из повторяющегося вопроса: https://stackoverflow.com/a/22469253/1321401

Эта ошибка может возникнуть по нескольким причинам.
Вот список требований для тестирования Google IAB.

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

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

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

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

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

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

Thnx @zlgdev для обновления

Лютен
источник
1
Достался мне versionCode - зачем это нужно?
slott
5

Мое решение заключалось в том, что мне нужно было использовать один и тот же ключ для подписи apk в Market (как черновик APK) и в тесте. Поэтому вместо простого запуска приложения мне всегда приходится экспортировать подписанный APK с каждым обновлением, удалять и переустанавливать его на устройстве с помощью команд командной строки apk. В принципе, вы также можете использовать собственное хранилище ключей в качестве хранилища ключей отладки, но это требует использования определенных жестко запрограммированных паролей и имен для ключей.

JaakL
источник
0

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

Изменить: в том же сгибе, если версия, которую вы отправили как черновик в Google, не подписана, ошибка также возникнет.

user1174195
источник
0

Чтобы добавить свои два цента, я смог протестировать его, загрузив бета-версию и создав учетную запись Gmail с тестовым доступом на вкладке настроек с новой версией моего приложения ...

Сейчас перехожу в производство ...

Благодарность! Натан

Натан Пратер
источник
-2

Старая ветка, но добавляю свой опыт ...

Установил apk с версиейCode 1 выше, чем был в магазине. Играл на 2 разных учетных записях на моем Nexus 7 и столкнулся с этой проблемой. Поэтому я удалил и переустановил из магазина, чтобы убедиться, что код версии совпадает. Даже подождав ночь, ошибка не исчезла.

Оказывается, мне нужно было удалить со всех трех учетных записей Google, которые я привязал к своему Nexus 7. Он восстановился, когда я удалил приложение явно из всех трех учетных записей на моем Nexus 7, а затем переустановил из магазина.

Фаррелл
источник