cordova-plugin-purchaseでQuotaExceededError (DOM Exception 22): The quota has been exceededエラー

cordova-plugin-purchaseを使っての継続課金機能の開発中にこちらのエラーが多発した。iOSの話。

Error in Success callbackId: InAppPurchase1613437489 : QuotaExceededError (DOM Exception 22): The quota has been exceeded.

この辺りの処理も呼ばれなくなり正常に処理できなくなったので調べて見た。

store.when('PRODUCT_ID').approved(function(product) {
  ・・・
})
store.when('PRODUCT_ID').verified(function(product) {
  ・・・
})

プラグインのソースを見ていたらこの辺りの処理や端末から取得可能なレシートを1度ローカルストレージに保存するような実装になっていた。
SandBox環境だと何度も課金するのでレシートデータもどんどん膨大になっていく。それをそのままローカルストレージに保存するところで容量オーバーのエラーになっている様子。アップルIDを変えてログインしなおしても同じ端末だと古いレシートも処理しているようで回避できず。。今時点の対策としては端末を初期化するしかなさそう。。

これ調べるのに1日くらいかかってしまった。。すっきりしないけど、以上です