トランザクションが複数できると面倒なことになると前回のポストで書きました。特に購入手続きの途中でアプリケーションが終了してしまったような場合は、アプリケーション側で少し面倒ですが対策をいれないと問題を回避できません。 発生するケースについての確認 実際の対策を見る前に、発生するケースについて確認しておきます。 ユーザがアプリケーション上で特定のアイテムを「購入」しようとする。 アプリケーションからStoreKitのキューにPaymentリクエストが積まれる。 トランザクションが生成される。 トランザクションが完了する前にアプリケーションが終了。 アプリケーション再起動。 前回のトランザクションが再開/完了するより前のタイミングでユーザが再び「購入」しようとする。 この問題は、前述の通りアプリケーション起動から未完状態のトランザクションが再開されるまで若干のラグがあるために発生しうる問題です