Можно ли отлаживать локальную загрузку приложений Google Play в Android Studio?
Я получаю эту ошибку, тестируя продукты подписки на приложения локально.
Требуется аутентификация . вам нужно войти в свою учетную запись google
Я смог проверить инвентарь для продукта, но не должен ли я его купить?
Есть несколько сообщений о том, почему эта ошибка может возникнуть, о которой я думал, были адресованы:
- продукт выпущен в бета-канале с включенным выставлением счетов в приложении
- Я зарегистрирован в Play Маркете с лицензированной учетной записью тестового пользователя на устройстве.
Это единственный способ проверить фактические покупки через бета-альфа-каналы - не прямо из студии Android. Этот пост предполагает, что это возможно (см. Снимок экрана)
http://developer.android.com/google/play/billing/billing_testing.html#billing-testing-test
Ответы
Ответ 1
По сути, платежные платежи в приложении можно проверить только с помощью подписанного релиза apk (который мы загружаем в консоль Google Play).
Вот несколько шагов, которые привели меня к подписанному apk с Android Studio
:
Я на винде. Это помогает иметь adb.exe
в ПУТИ, для меня это:
C:\Users{your-username}\AppData\Local\Android\sdk\platform-tools
- В консоли Google Play убедитесь, что приложение опубликовано (это однократный ручной шаг после первоначальной обработки) в альфа- или бета-канале, и у вас есть лицензированная тестовая учетная запись Gmail (из раздела "Настройки учетной записи").), который также находится в списке альфа/бета-тестеров и не является владельцем учетной записи приложения. Эта учетная запись является единственной учетной записью на устройстве. выпустите apk и убедитесь, что все работает с установленной версии из Play Store.
- Есть эти настройки:
В
AndroidManifest.xml
под узлом application
android:debuggable="true"
tools:ignore="HardcodedDebugMode"
Примечание:
Вероятно, вам нужно добавить свойство: xmlns:tools="http://schemas.android.com/tools"
в ваш тег манифеста. Это может выглядеть так:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.package"
xmlns:tools="http://schemas.android.com/tools">
И в своем файле build.gradle
в разделе android > buildTypes > release
добавьте:
debuggable true
Создать подписанный APK из Android Studio
Подключите ваше устройство для отладки по USB. Удалить текущую установку:
adb uninstall {yourdomain}.{yourpackagename}
- Установите его (из пути выпуска)
adb install app-release.apk
- Откройте приложение на устройстве. в меню Android Studio
Run
последний параметр - "Подключить отладчик к процессу Android" - выберите свое устройство. Вы сейчас отлаживаете.
Примечание: для биллинга в приложении номер сборки должен совпадать с номером, опубликованным в настоящее время в Play Store.
Ответ 2
Возможно, другой подход:
Аналогично в большинстве случаев, что упоминается здесь, кроме как вы просто указываете на свое хранилище ключей в своем отладочном файле buildType.
Точные шаги:
1) В вашем приложении Gradle файл в теге android
добавьте конфигурацию подписки на выпуск:
signingConfigs {
release {
storeFile file("Path_to_your_Production_release_Keystore.jks")
storePassword 'your_keystore_password'
keyAlias 'your_key_alias'
keyPassword 'your_key_password'
}
}
и добавьте конфигурацию подписи в свой debug buildType:
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-project.txt', 'proguard-google-api-client.txt'
}
debug {
signingConfig signingConfigs.release
debuggable true
}
}
2) Убедитесь, что versionCode
и versionName
в вашем приложении Gradle > defaultConfig
раздел точно соответствуют тому, что вы загрузили в загружаемом магазине apk:
defaultConfig {
applicationId "com.groovypackagename.groovyapp"
minSdkVersion 16
targetSdkVersion 24
versionCode 56
versionName "0.9.6"
multiDexEnabled true
resConfigs "en"
}
3) Обязательно добавьте разрешение на оформление вашего манифеста:
<uses-permission android:name="com.android.vending.BILLING" />
4) Не забудьте добавить свои продукты IAB (в приложении) для документов
5) Установите свои точки останова и отладки в обычном режиме.
6) После того, как вы успешно обманули свой код, не забудьте очистить, по крайней мере, изменения в вашем файле Gradle, например, удалить конфигурацию подписи, чтобы ваши пароли kestore не плавали в пространстве.
При любой удаче вы сможете выполнить локальную отладку для своего кода IAB.
Приветствия.
Ответ 3
Следующее сработало при запуске из моей IDE (Android Studio)
1) Зайдите в свой https://play.google.com/apps/publish/
В разделе "Учетная запись разработчика"/"Настройки"/"Детали учетной записи"/"Проверка лицензии"
2) Добавьте адрес электронной почты Google Play по умолчанию, соответствующий устройству, которое вы тестируете.
Источник: https://engineering.memrise.com/faster-in-app-billing-subscriptions-testing-8e68551b4e2f
Ответ 4
Я предполагаю, что при инициализации "помощника биллинга" вы предоставляете ему открытый ключ Base64 с консоли разработчика. Этот ключ соответствует вашему сертификату выпуска.
Сообщение, которое вы получаете, предполагает, что вы, вероятно, пытаетесь запустить приложение в режиме отладки. Это означает, что ваше приложение подписано с использованием сертификата отладки (по умолчанию). Если я прав, это объясняет, почему вы не авторизованы.
К сожалению, единственный способ протестировать биллинг в приложении - это приложение, подписанное с использованием сертификата выпуска, на устройстве, зарегистрированном в учетной записи, которое определяется как "учетные записи Gmail с доступом к тестированию", и ваше приложение имеет для публикации в Google Play (альфа/бета/производство).