まず第一に、私は更新を強制するアプリが本当に嫌いです。しつこくしつこいことも悪いです.1つのアプリでは、起動ごとに3回しつこいです(アップデートでそのバグを修正したと思います).
購入品が非消耗品の場合...
あなたは、IAP が実際にはサポートしていないことを行っています。現在、個々のトラックを所有済みとしてマークし、誤って再購入できないようにする「アルバム」を購入するためのアナログはありません。
そうは言っても、
- 1.0 でコンボを購入しても1.1 で魚と馬が得られない場合は、新しい製品または消耗品が必要です。
- バージョン 1.0 で猫 + 犬 + 鳥のコンボを購入したユーザーが、バージョン 1.1 で猫 + 犬 + 鳥 + 魚 + 馬を購入する必要がある場合は、おそらく問題ありません。ユーザーがアプリを更新すると、自動的に修正されます。
私は後者を仮定します: ユーザーは、アプリの新しいバージョンで新しい動物を自動的に提供する「すべての動物」を購入しています。
(そして、ユーザーに更新を促すこともできます — ただ、あまりうるさくしないでください!)。
この場合、あまり心配する必要はありません — 私の直感では、携帯電話が古すぎて更新できないユーザーはアプリを購入する可能性は低く、ましてや IAP を購入する可能性は低く、意図的に更新を避けるユーザーはおそらく IAP も購入しないでしょう。
ここでリマインダーが役に立つかもしれません (「ちなみに、バージョン 1.1 では魚と馬のロックも解除されます」) — UI をブロックしないようにしてください。
購入品が消耗品の場合...
2 つの可能性があります。
ユーザーがアプリを更新する前に価格が変更されます。ユーザーのアカウントには cat+dog+bird が入金されます。
ユーザーがアプリを更新すると、これを修正できる可能性がありますが、ユーザーが購入した IAP のバージョンを確認する信頼できる方法はないようです。SKProduct.{price,priceLocale}
領収書と一緒に保存してみることができますが、その保証はありません。商品から読み取った価格は、取引で支払われた価格と同じです。しかたがない。
iOS In-App Purchase Programming Guideによると、価格はトランザクションの領収書にもないようです
ユーザーは、価格が変更される前にアプリを更新します。ユーザーは 1.0 の価格で 1.1 コンボを購入できます!
アプリの更新が利用可能になるのと同期して IAP 価格の変更が発生することを保証できるとは思いません。アップグレードを強制しようとすると、アップグレードがまだ利用できないため、一部のユーザーがイライラするだけかもしれません. 唯一の安全なオプションは 2 番目のようですが、収益がいくらか失われる可能性があります。
しかし、ユーザーは根本的に違うものを買っているのですから、本当は違う製品のはずです。
(非消耗品の場合、入手するものが購入したバージョンに依存しないという意味で、それらは「同じもの」です。)