アプリ内サブスクリプション製品をローカルでテストしてこのエラーを取得しています。
認証が必要です。あなたはあなたのグーグルアカウントにサインインする必要があります
商品の在庫は確認できましたが、購入できないのでは?
なぜこのエラーが発生する可能性があるのかについて、対処されたと思われる投稿がいくつかあります。
Androidスタジオから直接ではなく、ベータ/アルファチャネルを介して実際の購入をテストする唯一の方法です。この投稿はそれを可能にすることを示唆しています(スクリーンショットを参照))
http://developer.Android.com/google/play/billing/billing_testing.html#billing-testing-test
本質的に、アプリ内課金の支払いは、リリース署名されたapk(Google Play Consoleにアップロードしたもの)でのみテストできます。
署名されたapkにAndroid Studio
:
私はWindowsを使用しています。 adb.exe
PATHで、私にとっては:
C:\ Users {your-username}\AppData\Local\Android\sdk\platform-tools
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
Android Studioから署名済みAPKを生成します
USBデバッグ用にデバイスを接続します。現在のインストールを削除:
adb uninstall {yourdomain}.{yourpackagename}
adb install app-release.apk
Run
メニューから、最後のオプションは「デバッガをAndroidプロセスに接続する」-デバイスを選択してください。デバッグ中です。[〜#〜] nb [〜#〜]アプリ内課金の場合、ビルド番号は現在Playストアで公開されているものと一致する必要があります
おそらく別のアプローチ:
デバッグ用buildType内のリリースキーストアをポイントすることを除いて、ほとんどの点でここで説明されているものと同様です。
正確な手順:1)Android
タグ内のアプリGradleファイルで、リリース署名構成を追加します。
signingConfigs {
release {
storeFile file("Path_to_your_Production_release_Keystore.jks")
storePassword 'your_keystore_password'
keyAlias 'your_key_alias'
keyPassword 'your_key_password'
}
}
署名の構成をデバッグ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
> defaultConfig
セクションが、Playストアにアップロードした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コードのローカルデバッグを実行できます。
乾杯。
以下は私のIDE(Android Studio)から起動するのに役立ちました
1) https://play.google.com/apps/publish/ 「Developer」アカウント/設定/アカウントの詳細/ライセンステストに移動します
2)テストするデバイスに対応する「デフォルトのGoogle Play」メールアドレスを追加します
ソース: https://engineering.memrise.com/faster-in-app-billing-subscriptions-testing-8e68551b4e2f
私は、「課金ヘルパー」を初期化するときに、開発者コンソールからBase64公開鍵を提供すると想定しています。そのキーは、リリース証明書に対応しています。
表示されるメッセージは、おそらくアプリをデバッグモードで実行しようとしていることを示しています。つまり、アプリはデバッグ証明書(デフォルト)を使用して署名されます。私が正しいのなら、それはなぜあなたが認証されないのかを説明しています。
残念ながら、アプリ内課金をテストする唯一の方法は、リリース証明書を使用して署名されたアプリ内で、アカウントにログインしているデバイス上にあり、「テストアクセス権のあるGmailアカウント」として定義されており、アプリを公開する必要がありますGoogle Play(alpha/beta/production)へ。