Closed7
【SwiftUI+RevenueCat】個人開発のiOSアプリにサブスクリプションを実装したメモ
ピン留めされたアイテム
概要
- 個人開発しているアプリにRevenueCatを用いてサブスクリプションを導入したときのメモ
要約
- StoreKit2 or RevenueCatどちらで実装するか悩んだが、RevenueCatを採用
- ※どちらも実装経験無し
- 個人開発レベルでは、実装からリリース/運用までRevenueCatで全く問題なかった🚀
情報収集
- iOSでのサブスクリプション実装は、
StoreKit
フレームワークを使って実装する - iOS15以上に限るが、StoreKit2を使うことでかなり楽に実装できる(サーバーサイドの実装工数が不要)
- RevenueCat (StoreKitのバックエンドとwrapperを提供) を使うことでも楽に実装できるっぽい
- StoreKit2 vs RevenueCat どちらでサブスクリプションを実装するか?技術選定した
技術選定方針
- 学習コスト
- 工数
- メンテナンス性
- 金
- わくわく感
StoreKit2
- WWDCの動画を一通り見て雰囲気を掴む
- https://developer.apple.com/videos/play/wwdc2021/10114/
- https://developer.apple.com/videos/play/wwdc2022/10039/
- https://developer.apple.com/videos/play/wwdc2022/10007/
- https://developer.apple.com/videos/play/wwdc2023/10140/
- https://qiita.com/alt_yamamoto/items/334daaa33ff12758d114
RevenueCat
- 同じくSwiftUIで実装した知見やFlutter等で実装した記事等をざっくり見た
- 売上$2,500/月 まで無料で使える (超えた場合、1%の手数料)
- https://www.revenuecat.com/
- https://www.revenuecat.com/docs/apple-app-store#ios-14-only-testing-on-the-simulator
- https://zenn.dev/moga/books/flutter_revenuecat
- https://www.revenuecat.com/docs/launch-checklist
- https://extensions.dev/extensions/revenuecat/firestore-revenuecat-purchases
- https://kacchanblog.com/programming/revenuecat-implementation
- https://tomato-develop.com/swiftui-app-app-purchases-how-to-implement-revenue-cat/
- 実装で苦しんでいる人がいないか調べる
-
StoreKit2つらい
RevenueCatつらい
等
-
- https://twitter.com/search?q=ios revenuecat lang%3Aja&src=typed_query&f=top
最終的な判断
- RevenueCatを選定することにした
- wrapperということもあって実装工数が低いのはかなりありがたい(リソースが自分ひとりのため)
- ReactNative+Expo製のアプリに導入する際もロジックや取り回しを使いまわせそうで良い
- ミニマムチャージ的なのもの無くて財布に優しい
- データ分析ダッシュボードがある程度整ってる(個人開発のため自前でデータ分析する余裕があまりない)
サブスクリプション設計
- https://www.revenuecat.com/state-of-subscription-apps-2023/
- サブスクに関する様々なデータがRevenueCatによって公開されている
試用版のあるアプリの場合、アプリのダウンロードの 3.7% が試用版を開始し、それらの試用版の 38% が有料購読者に変換されます。
アプリのダウンロードのうち有料会員に変換されるのは 2% 未満です
上記のような情報が無料で公開されているので、これを読みながら自身のアプリで提供するサブスクリプションの価格設計を行いました。
UI実装
- アプリ課金に関するUI実装のプラクティスを参照
- 類似アプリのサブスクリプション画面をfigmaに収集しまくる
- サブスクリプションに関するAppStoreReviewガイドラインを一通りチェック
- https://developer.apple.com/jp/app-store/review/guidelines/#ビジネス
3.1.2 サブスクリプション
- 幸いにも1回もリジェクト食らわずに済んだが、年額課金の表記でリジェクトされる人が多いっぽい
- ex. コンバージョン率をあげるために
300円/月
のプランと3000円/年 (250円/月)
のプランを用意したとき、3000円/年
よりも(250円/月)
が目立つようなUIはリジェクトを食らう (実際に請求される額を強調しなければならない)
- ex. コンバージョン率をあげるために
実装
- RevenueCat公式ドキュメントを読みながら進める
- インストール
- ユーザーの識別
- 商品の表示
- サブスクリプションの購読
- 購読状態の確認
- 購読状態の復元
- 購読状態の管理 (任意だが、導線としてあったほうが親切)
guard let url = URL(string: "itms-apps://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions") else { return }
UIApplication.shared.open(url)
詰まったこと/ハマったこと
ほとんどなかった
- RevenueCatの公式ドキュメントを見ながら進めるだけで実装できる
- ガイドごとにベストプラクティスが載ってあるので、これも必ず参照する
The receipt is not valid
エラー
- https://community.revenuecat.com/sdks-51/the-receipt-is-not-valid-error-with-on-device-sandbox-testing-871
- AppStoreConnect共有シークレットをセットする必要があった
その他
審査時間
- 1日+12時間で審査完了した
- in reviewになってから6時間くらいかかってた
宣伝
XにてiOSアプリ開発や個人アプリ開発周りの情報を発信しています!
MENTAはじめました!iOSアプリ開発でお困りの方はぜひご相談ください 👋
個人で開発したアプリが10万DL突破しました!
このスクラップは2023/09/26にクローズされました