アプリ課金テストがエラー→Googleアカウントを複数使っているため
原因:Googleアカウントを複数使っているため
開発中のお買物メモアプリ「Happy Shared Shopping」のアプリ課金テスト中に起こったエラー。
検証をしている端末で、Googleアカウントを複数使っている場合は要注意。
検証のための仕事用アカウントと、プライベートのアカウントなど複数のGoogleアカウントを使用していた。
この場合、テストアプリの課金は仕事用アカウントに行ってほしいところだが、Android端末では選ぶことができない。
つまり、テストアプリでの課金の処理もプライベートのアカウントにしようとして失敗しているためだった。
症状:課金アイテムを購入しようとするとエラー
アプリ公開前のテストアプリで、課金アイテムを購入しようとすると「指定されたアイテムは購入できません」と表示され、課金テストを行うことができないという状態なる。
詳細
プライベートと、仕事用と複数アカウントを1つの端末で使っているなら要注意。
アプリのテスト権限は仕事用アカウントに与えている。
しかし、プライベートでも使用している端末のため、通常のアプリはプライベートのアカウントで支払いを行っている。
だが、Googleでは課金をどのアカウントに対して行うかを任意に選ぶことができない仕様になっていた。
課金の際はどんな場合でもプライベートのアカウントが優先されるようで、テストアプリに対してもプライベートアカウントに対して課金しようとしていた。
しかし、テストアプリの課金アイテムの購入権限は仕事用アカウントにしか付与していない。
そのため、購入できない旨のエラーが出ていたようだ。
2023年10月下旬から出たエラー
なお、複数アカウントを使っている端末でも、途中まで購入できていた。
しかし、2023年10月下旬に突然できなくなってしまった。
このタイミングでAndroid14にアップデートするなどしたが、因果関係は不明。
解決方法
現状は以前使っていたAndroid端末を検証用として再利用し、その端末から不要なアカウントを全て削除することで対応。
【参考】開発環境
課金アイテム | 定期購入サブスクリプション |
課金頻度 | 月 |
端末 | Pixel6a |
開発プラットフォーム | Firebase |
もちろんこれ以外の要因の場合も多分にあると思うが、同じ失敗を何度も繰り返して時間を浪費してしまい、散々苦しめられたので備忘録のため、またどなたかの役に立てば。