購入トランザクションは、アプリが最後にfinishTransaction:を呼んだタイミングで完了となりますが、そこにたどり着く前にアプリケーションが終了してしまったりネットが切断してしまう可能性があります。その場合、トランザクションは未完状態になり、次回アプリケーションが起動したタイミングで再開されます。これを適切に処理しようとすると、結構厄介なことに気がつきます。 トランザクションを意図的に未完状態にする方法はいくつかあります。購入ダイアログがでた直後にアプリケーションを終了してしまってもいいし、もっとシンプルにPaymentをキューに積んだ後、finishTransactionを呼ばなければそのトランザクションは未完状態のまま残る事になります。 トランザクションの再開 未完状態のトランザクションは、次回アプリケーションが起動した後でStoreKitからSKPaymentTransac