Android inapp биллинг не работает [дубликат]

В базе R вы можете сделать

grep("^[A-Z]", scan(textConnection("fsfs blabla Honda t Asus"), ""), value=TRUE)
Read 5 items
[1] "Honda" "Asus" 

Здесь scan читает текст и разбивает его пробелом. Затем grep со значениями = TRUE возвращает все элементы в символьном векторе, которые соответствуют подвыражению «^ [AZ]», которое может быть прочитано «начинается с заглавной буквы».

Вместо scan , вы можете использовать strsplit / unlist для того же результата.

grep("^[A-Z]", unlist(strsplit("fsfs blabla Honda t Asus", " ")), value=TRUE)
217
задан Gatekeeper 17 June 2012 в 04:20
поделиться

16 ответов

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

  1. Отправить в Google версию версии вашего приложения с разрешением IAB на манифест:
  2. Добавьте продукт в свое приложение в google play: Администрирование In-app Billing
  3. Задайте настраиваемое хранилище отладки: Настройте Eclipse для использования подписанного хранилища ключей
182
ответ дан Community 3 September 2018 в 18:04
поделиться

РЕШЕНИЕ

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

0
ответ дан Ali Akram 3 September 2018 в 18:04
поделиться

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

2
ответ дан Amalka 3 September 2018 в 18:04
поделиться

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

Перекрестная ссылка LINK

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

]
android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file("my-release-key.jks")
            storePassword "password"
            keyAlias "my-alias"
            keyPassword "password"
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.release
            ...
        }
    }
}
-1
ответ дан Anoop M 3 September 2018 в 18:04
поделиться

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

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

0
ответ дан DZDomi 3 September 2018 в 18:04
поделиться

Вопреки многим ответам и комментариям на 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";

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

1
ответ дан Epsilon3 3 September 2018 в 18:04
поделиться

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

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

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

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

44
ответ дан Evan Leis 3 September 2018 в 18:04
поделиться

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

0
ответ дан Gal Rom 3 September 2018 в 18:04
поделиться

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

1
ответ дан goRGon 3 September 2018 в 18:04
поделиться

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

0
ответ дан JDenais 3 September 2018 в 18:04
поделиться

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

4
ответ дан Law Gimenez 3 September 2018 в 18:04
поделиться

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

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

Предварительные требования:

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

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

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

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

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

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

265
ответ дан Luten 3 September 2018 в 18:04
поделиться

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

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

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

1
ответ дан Pablo Cegarra 3 September 2018 в 18:04
поделиться

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

1
ответ дан Søren 3 September 2018 в 18:04
поделиться

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

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

129
ответ дан sandalone 3 September 2018 в 18:04
поделиться

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

Это произошло главным образом из-за подписания.

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

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

  • Сгенерировано подписанное apk типа сборки «release».
  • Вручную установлена ​​apk.
3
ответ дан Shree Harsha S 3 September 2018 в 18:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: