現在、次の機能を実装するアプリ用のアプリ内購入マネージャーを設計しています。
- サーバーベースのバックエンドなしで、productId が購入されたかどうかの簡単なクエリに答えます。
- 基本的な著作権侵害対策
最初の機能を実装するには、トランザクション履歴を json としてシリアル化し、ローカル ファイルに保存します。ジェイルブレイクされたデバイスを使用する Average-Joe が別のユーザーのトランザクション履歴を自分のデバイスにコピーするのを防ぐために、履歴ファイルは、identifierforvendor から派生したキーを使用して暗号化されます (基本的な保護について述べたことを思い出してください)。
完了したトランザクションが SKProductsRequestDelegate を通じて報告されるたびに、トランザクション履歴ファイルに追加されます。
暗号化キーの不一致が原因で履歴ファイルが見つからないか壊れているために起動時に履歴ファイルを開くことができない場合、ファイルは破棄され、restoreCompletedTransactions が呼び出され、SKPaymentTransactionObserver を介して報告されたトランザクションが新しく作成された履歴ファイルに追加されます。
その概念は、最初に概説したコンテキストで意味がありますか、それとも間違っていましたか?
サーバー バックエンドを必要とせずにセキュリティと信頼性を向上させる方法についてのコメントや提案も歓迎します。