トップ/記事一覧

getProductsAsync の返り値が空配列になっていた

📆2022/01/30🔖 Fast NotionReact Native

数日前より Fast Notion で不具合が発生していた。事象としてはプロプラン(有料サブスクリプションのプラン)に申し込みができないというもので、プロプラン申し込みボタンを押してもなにも反応がなくなってしまっていた。

詳しくログを出してトラッキングしていくと、どうやらサブスクリプションの商品を取得する関数 getProductsAsync に問題があるようだった。エラーが返ってきているというより、返り値に格納されて返却されるはずの商品データの配列が空になってしまっているという現象が起きていた。getProductsAsync が正常に動作しないと、Apple の In App Purchase の仕様上、購入フローに進めないのである。

プロダクションコードの実装に問題があるのではないかとライブラリの内部構造を見たり、処理順を変えたりしてみたが、原因は分からず、ひとまずログを色々と仕込んだ状態でアプリのリリースを試みようと、App Store Connect を開いたところ、以下のような画面になっていた。

有料 App の部分が「期限切れ」となっている

更新ボタンを押して、有料 App の部分がアクティブに再度変わり、アプリが無事動き出した。原因はここだったのか……

🐈

みなさんも有料 App の契約切れには気をつけましょう。もっと親切にエラーを出してくれよと思ったデバッグでした。数日間、うまく動作しない状態にしてしまいました。ご迷惑をおかけしました。