LoginSignup
8
8

More than 5 years have passed since last update.

いまさらだけど、iOS 7型のアプリケーションレシートとアプリ内課金レシートの挙動をまとめた

Last updated at Posted at 2016-10-31

もはや3年も前の話ですが、iOS 7からSKPaymentTransactionオブジェクトからレシートを取得することがdeprecatedになりました(Swiftではそもそも取得できない)。
代わりに、以下のコードでアプリケーションレシートを取得すれば、購入時のレシート情報を確認することが出来ます。

NSData(contentsOfURL: NSBundle.mainBundle().appStoreReceiptURL!);

最近になってようやくiOS 7型のレシートの挙動について調べたので、
iOS 7型のアプリケーションレシートの処理を実際に動かしてみて分かったことを備忘録的にまとめました。

  • Apple IDでログインしていても、アプリインストール時点ではアプリケーションレシートはnil
  • リストア/課金を行うことでアプリケーションレシートにアプリ内課金レシート情報が書き込まれる
  • Apple IDをサインアウトしたり別のApple IDでサインインしても、アプリケーションレシートにアプリ内課金レシート情報は残る
    • ただし、後者のApple IDで購読したりリストアして過去のトランザクションを復元した場合、後者のApple IDの課金レシートのみになる
  • アプリをアンインストールするとアプリケーションレシートは消える(その際、paymentTransactionのレシート情報も消える)
  • アプリケーションレシート内のin_appにはアプリケーションで処理したpaymentTransactionのレシートが含まれる
  • アプリケーションレシート内のlatest_receipt_infoには全てのpaymentTransactionのレシートが含まれる

以上。

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8