#1
更新しないサブスクリプションを含む iOS アプリを開発しています。ユーザーのすべてのデバイスでサブスクリプションを利用できるようにし、ユーザーが購入を復元できるようにしたいと考えています。
Appleのドキュメントで述べたように:
更新しないサブスクリプションの場合は、iCloud または独自のサーバーを使用して永続的な記録を保持します。
私のアプリは今のところiOSでしか利用できないので、私は自分のサーバーを使用するものはありません。したがって、iCloud はより簡単なソリューションのようです。
iCloud に関する多くの WWDC ビデオとドキュメントを見て読んだ後、キー値ストレージは 1MB に制限されており、1 人のユーザー (後例:異なる購入の年)。
質問は:これまでのところ、私は正しいですか?
#2
購入には RMStore Library を使用しています。ドキュメントで述べられているように、RMStore には iCloud へのトランザクション永続性の参照実装がなく、インターネットで例が見つからなかったため、自分でゼロから行う必要があります。
私が直面している最初の問題は、ユーザーがサブスクリプションを購入した後にレシートを iCloud に同期する際に問題が発生した場合はどうなるかということです。例: ユーザーがサブスクリプションを購入し、それを iCloud に同期するときにエラーが発生し、アプリを閉じて、それだけです。これは本当のシナリオですか?非更新サブスクリプションの場合、領収書は Apple によってどこにも保存されないため、ユーザーのために領収書を配信して保存する責任はすべて私にあります。ユーザーが次にアプリを起動したときに同期データをローカル データと比較できるようにするには、トランザクションが完了したらすぐにレシートをキーチェーンまたはキーチェーンに保存する必要がありますか? NSUserDefaults
それとも、領収書が同期されるまで「トランザクションを終了」しない方がよいのでしょうか? これに関するAppleのガイドは見つかりませんでした...
#3
次の明白な質問は、ユーザーがアプリの iCloud プライベート ストレージをクリアできるかどうかです。ユーザーはどうにかして iCloud レシートに保存されているものを削除して、購入に関するすべての情報を削除することはできますか? はいの場合 - どのように処理すればよいですか? このシナリオが現実である場合、彼がサブスクリプションを再度購入するまで、彼の購入を回復してアプリの機能を開く方法はありません。
前もって感謝します。