web-dev-qa-db-ja.com

Android Studio)でGoogle Playのアプリ内課金をローカルでデバッグすることは可能ですか?

アプリ内サブスクリプション製品をローカルでテストしてこのエラーを取得しています。

認証が必要です。あなたはあなたのグーグルアカウントにサインインする必要があります

商品の在庫は確認できましたが、購入できないのでは?

なぜこのエラーが発生する可能性があるのか​​について、対処されたと思われる投稿がいくつかあります。

  • 製品はアプリ内課金が有効になっているベータチャネルでリリースされます
  • デバイスのテストユーザーライセンスアカウントでPlayストアにログインしています。

Androidスタジオから直接ではなく、ベータ/アルファチャネルを介して実際の購入をテストする唯一の方法です。この投稿はそれを可能にすることを示唆しています(スクリーンショットを参照))

http://developer.Android.com/google/play/billing/billing_testing.html#billing-testing-test

23

本質的に、アプリ内課金の支払いは、リリース署名されたapk(Google Play Consoleにアップロードしたもの)でのみテストできます。

署名されたapkにAndroid Studio

私はWindowsを使用しています。 adb.exe PATHで、私にとっては:

C:\ Users {your-username}\AppData\Local\Android\sdk\platform-tools

  1. Google Play Consoleで、アプリがpublished(<は最初に処理された後、1回限りの手動手順です)アルファチャネルまたはベータチャネルであり、ライセンスされたテストGmailアカウントを持っていることを確認します([アカウント設定]セクションから) )これもアルファ/ベータテスターのリストにあり、アプリアカウントの所有者ではありません。このアカウントは、デバイス上の唯一のアカウントです。 APKをリリースし、Playストアからインストールされたバージョンですべて動作することを確認します。
  2. 次の設定があります:AndroidManifest.xmlapplicationノードの下
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

  1. Android Studioから署名済みAPKを生成します

  2. USBデバッグ用にデバイスを接続します。現在のインストールを削除:

adb uninstall {yourdomain}.{yourpackagename}

  1. インストールする(リリースパスから)

adb install app-release.apk

  1. デバイスでアプリを開きます。 Android StudioのRunメニューから、最後のオプションは「デバッガをAndroidプロセスに接続する」-デバイスを選択してください。デバッグ中です。

[〜#〜] nb [〜#〜]アプリ内課金の場合、ビルド番号は現在Playストアで公開されているものと一致する必要があります

47

おそらく別のアプローチ:

デバッグ用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)アプリグラドルのversionCodeversionName> 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コードのローカルデバッグを実行できます。

乾杯。

9
SN Bliss

以下は私の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

5
Mitch Thornton

私は、「課金ヘルパー」を初期化するときに、開発者コンソールからBase64公開鍵を提供すると想定しています。そのキーは、リリース証明書に対応しています。

表示されるメッセージは、おそらくアプリをデバッグモードで実行しようとしていることを示しています。つまり、アプリはデバッグ証明書(デフォルト)を使用して署名されます。私が正しいのなら、それはなぜあなたが認証されないのかを説明しています。

残念ながら、アプリ内課金をテストする唯一の方法は、リリース証明書を使用して署名されたアプリ内で、アカウントにログインしているデバイス上にあり、「テストアクセス権のあるGmailアカウント」として定義されており、アプリを公開する必要がありますGoogle Play(alpha/beta/production)へ。

2
dev.bmax