Android Bundle ID を共有する複数の Android のアプリ内ストア (Samsung、Google など) に同時にパブリッシングする場合、ストア間を横断してプロダクトをインストールすることで問題が発生する場合があります。ここでは、これらの問題と解決方法について説明します。
ストア間を横断してインストールする際の問題は、あるストア (ストア A) からアプリをインストールし、もう 1 つのストア (ストア B) からのアプリで先にインストールしたストア A のアプリをアップグレードするときなどに起こります。ユーザーのインストールをアップグレードすることができるのは、より新しいバージョンのアプリを提供しているストアです。この問題は、バージョンの違うアプリのビルドに、同じ Android Bundle ID と Key を使用している場合に発生します。
例えば、com.foo.bar
が Google Play と Amazon アプリストアの両方にパブリッシングされているとします。両方のアプリストアを使用しているユーザーは、com.foo.bar
を Amazon アプリストアからインストールし、更新されたバージョンを Google Play から取得できます。これにより、結果的に IAP デジタルプロダクトトランザクションが失われ、以前に行われたトランザクションを復元できなくなります。
複数のストアにまたがる問題は、アプリ内課金を利用するアプリに対して解決困難なエンドユーザー側の問題を引き起こすことがあります。ユーザーはアンインストールや再インストールのときに購入したプロダクトの紛失や、確定前の購入がストア間を横断したアップグレードによって妨げられていることに気づく場合があります。
結果として発生する IAP の問題
確定前の購入の紛失 購入の承認は済んでいる状態でも、アプリがストアの請求システムからの購入受理を確認する前にユーザーがアップグレードを行った場合に発生します。この問題は、アプリがクラウドインベントリーサービスとの適時な同期に失敗したり、新しいアプリ内の購入をローカルのインベントリーデータベースに保存する前にアプリがクラッシュすると発生します。
ストア A からの購入の差し止め ユーザーがストア A で IAP トランザクションを完了した後に、ストア B からアプリを再インストールした場合に発生します。これらのトランザクションは回復することができません。多くのストアは明示的に、アプリに対し他のストアの IAP システムからのアクセスを禁止しています。これを回避するには、依存ユーザー ID サービスを持つクラウドインベントリーサービスを使用します。
相違する IAP プロダクトリスト ストア B のアプリのアップグレードされたプロダクトのリストが、ストア A のものと異なる場合に発生します。ユーザーが多種類の IAP カタログを使用する場合もあります。しかし、これにより、矛盾するローカルインベントリーがストア B バージョンによって読み込まれるとき、アプリケーションエラーが発生することがあります。また、ユーザーが、ストア B のバージョンでは不可能な以前のインベントリーを失う場合もあります。
ストア間にまたがる問題を解決する 2 つの方法
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.