RevenueCat × SandBoxでの購入履歴を削除する方法

端末の購入履歴を消す方法

iOSアプリでアプリ内課金を導入した際に、購入履歴の削除に手こずったので記録しておきます。購入前後のテストをしたい時に、購入履歴が消えなく困っている方は試してみてください。

前提条件

  • サーバー: RevenueCat
  • 使用言語: swift
  • Xcode: Version 13.3.1
  • Storekit用のスキームで実行(Sandbox)
  • アプリ内で購入トランザクションができる状態

結論:サーバーのユーザーと、Xcodeのトランザクションを削除!

結論、以下2点をすれば シミュレーターから購入履歴が消えます。デバイスでのシミュレーションの場合は、プラスで1手順必要です。

  • RevenueCatのSandBoxユーザ履歴から、ユーザを削除
  • Xcodeで、シミュレーター起動時にタブからTransactionを削除する。
  • 実機の場合は、APPstoreのSandBoxテスターから購入履歴を削除

さらに、アプリ内のデータ(realm情報など)が消えていいのであれば、シミュレーターや端末上のアプリをアンインストールするだけ でも購入履歴が消えるのでこちらが最も楽です。

RevenueCatから、ユーザを削除する

まずはサーバー側のユーザー情報(厳密にはレシート?)を削除します。
上部タブの SandBoxトグルをオンにすると、ユーザが表示されます。

その後ユーザを選択して、下の方にDelete user があるのでクリックします。

confirm と記入してDeleteを押せば削除完了です。

Xcodeからトランザクションを削除

次にXcodeのSandbox上に記録されているtransactionを削除します。
in APPpurchaseを入れたスキームを実行をする必要があるので、未実施の方はこちらのrevenuecutのページを参考に実施してください。 https://docs.revenuecat.com/docs/apple-app-store

こちらのスキームでデバッグ中に、Xcodeのデバッグ用タブをみてください。
普段見慣れない矢印マークがあるので、そちらをクリックしtransactionを削除すれば完了です!

実機の場合はTestFlightユーザーの購入履歴を削除

次にAppStoreConnect“ユーザーとアクセス” → “テスター” から、テスター情報を開きます。
次に編集をクリックし、購入履歴を削除で対象を選んで削除すれば完了です!


以上で全ての削除手順は完了です。ただし、どれかの削除の反映が遅いことがあり、体感的には2~3分後に購入状態がリセットされる感じです。消えない場合は少し待ってみてくださいね。

まとめ

・RevenueCatのSandBoxユーザ履歴から、ユーザを削除
・Xcodeで、シミュレーター起動時にタブからTransactionを削除する。
・実機の場合は追加手順として、APPstoreのSandBoxテスターから購入履歴を削除

アプリ内データが消えていい場合は
・アプリを削除し再インストール

お疲れ様でした!