AndroidのAndroid In App Billingで「アイテムが見つかりませんでした。」の解決方法

現象について

UnityでAndroid In App Billing Pluginを使ってアプリ内課金をためす方法
で、UnityからAndroidの課金のやり方を解説したのですが、ある時から、

「購入しようとしたアイテムが見つかりませんでした。」

というエラーが出て、いっこうに課金テストすることができませんでした。

UnityのPluginが出していたエラーは以下のような感じ。

You have not queried your inventory yet so the plugin does not have the required information to protect you from coding errors.
CANNOT fetch sku type due to either inventory not being queried or it returned no valid skus.

FileBasedKeyValueStore.delete: Attempt to delete ‘lkajsdflkasdlkfjaldkfjaldjflkd’ failed!

BasicNetwork.performRequest: Unexpected response code 500 for https://android.clients.google.com/fdfe/preparePurchase

ググると時間がたつと使えるようになるよ。といった記事もあり、待ってみましたがいっこうにダメ!

さらに調べてみると、公式にアナウンスがあったよう。

テスト課金、ライセンシング、APK 拡張ファイルのダウンロード 以前はこれらの機能を APK がドラフトの状態でもご利用いただけましたが、最近の変更により、今後は APK が公開されている状態である必要があります。アルファ版もしくはベータ版 APK として公開することでテストが可能で、一般公開する必要はありません。詳細については、Android Developers サイトをご確認ください。

via
Android デベロッパー ヘルプ

つまり、課金の仕組み変わって、ドラフト状態だと課金のテストができないよーというもの。

Testing In-app Billing | Android Developers
にもDraft Apps are No Longer Supportedという文章がありました。

これはハマるよー!わからないよー!

解決策

Google Play アルファ版機能を利用してアプリをテストする -でじうぃき
「購入しようとしたアイテムが見つかりませんでした。」アプリ内課金の実機テストが出来なくなった時の対処法 | 日本VTR実験室

こちらの記事を読んでもらえれば解決します。

  • Google Playでアルファにapkをアップロードする
  • アルファのテスターのリストを管理をクリックし、テストユーザーを含むGoogleグループを追加する
  • アプリを公開する、キャプチャなどの画像・国・規約に同意などなど
  • 公開したあと(この公開はアルファ公開なので一般にはDLできない)再度テスターのリストを管理をクリックするとURLが書いてあるので、Android端末からアクセスする
  • テストユーザーに含めたGoogleグループに所属しているユーザーならアプリのDLが出来るようになっている
  • アプリがDL出来るようになるまで少し時間が掛かります
  • またすでにUnityから同アプリを入れている場合はアンインストールしておきましょう
  • DLアプリを起動し、課金してみるとやっと念願の課金画面がでてきます

と、かなり面倒になってしまいました。
とくに面倒なのが、アプリを修正するたびに課金の確認をする場合はapkのアップロードが必要なところですね。

この仕様変更は、どうも調べてると5月のどっかでされたようで、確かにその時期からなんかうまくいかないなーと思っていました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>