対象読者
- Expoで作ったiOSアプリの公開準備を進めている人
- アプリ内課金のテストやAppleの審査対応について知りたい人
前回は、要件を十分に決めないまま実装を始めUIや処理の修正を繰り返した話を書きました。
要件を決めないまま実装して手戻りが増えた話【個人開発 第3回】
作っている途中で、リハビリの記録や写真の添付など入れたい機能が増えていきました。最初は痛み、気分、不安を記録して見返せる程度を考えていたのですが、公開前に作るものが増え確認や修正にも手間がかかるようになりました。
最初の公開に機能を入れすぎた
作っているうちに追加したくなったのは次のような機能です。
- リハビリの内容と時間を記録する
- 身体図から痛む場所を選ぶ
- 写真を添付する
- 記録をPDFで共有する
- 通知を出す
最初に考えていた範囲を超えて公開前に機能を追加してしまいました。
例えば、リハビリ記録を追加すると入力画面を作って終わりではありません。保存した内容を見返す画面が必要で記録を編集したり、不要な記録を削除したりする操作も必要になります。その画面や操作が動くか、テストするところまで作業が増えました。
一つの機能を追加するつもりでもその周りに必要なものまで含めると作業量が増えます。確認する画面が増え修正とビルドを繰り返すことになりました。
次に作るときは最初の公開に入れる機能と公開後に追加する機能を分けておこうと思います。
画面修正では、Codexとの認識の違いにも苦労しました。そこで実装前に私の依頼内容をCodexの言葉で説明してもらうようにしました。返ってきた説明のうち、違う部分を直してから実装へ進みます。画面や操作、完了条件を先に確認すると、実装後の大きなやり直しを減らせました。
小さな修正でもビルドを繰り返していた
私は文言や画面の細かい調整を確認するときもそのたびにEAS BuildでビルドしてiPhoneへ入れていました。無料プランの利用上限を先に確認しておらず開発の終盤で残りの枠が少ないことに気づきました。
残りの枠を意識してからは、変更内容によってEAS BuildとEAS Updateを使い分けるようにしました。
| 変更内容 | 使う方法 |
|---|---|
| ネイティブコードやネイティブ依存関係の変更 | EAS Buildで新しいビルドを作る |
| 既存ビルドと互換性のあるJavaScript、スタイル、画像、文言の変更 | EAS Updateで更新する |
EAS Updateは、アプリのJavaScriptや画像などを更新するためのサービスです。利用するには、expo-updatesを組み込んだビルドが必要になります。導入時には一度ビルドし直し、その後は既存ビルドのネイティブコードと互換性がある変更を配信できます。
サービスの利用上限と、変更内容ごとの実機での確認方法は、開発を始める段階で調べておけばよかったです。
RevenueCatを入れて購入や復元をテストした
このアプリには、一部の機能を有料で使える仕組みを入れました。購入状態の管理にはRevenueCatを使っています。
導入からテストまでは、次の順番で進めました。
- App Store Connectでアプリ内課金の商品を作る
- その商品をRevenueCatへ登録する
- アプリへ課金機能と購入状態の判定を実装する
- 課金機能を含めたアプリをビルドする
- iPhoneで購入時の動きを確認する
テストではDevelopment Build(開発用のビルド)をiPhoneへ入れ、Sandbox Apple Accountを使いました。AppleのSandboxは、実際の請求を発生させずにアプリ内課金を試せる環境です。
実機では、次の動きを確認しました。
| 操作・状態 | 確認したこと |
|---|---|
| 購入成功 | 有料機能を使えるか |
| 購入キャンセル | キャンセル後に有料状態にならないか |
| 購入の復元 | 過去の購入を復元できるか |
| 購入履歴がない状態で復元 | 表示が崩れないか |
| 通信失敗 | エラー後に操作不能にならないか |
ストアに載せる文章と画像を用意する
アプリと課金機能を確認した後は、App Store Connectへ登録する情報をそろえました。
- アプリの名前と紹介文
- スクリーンショット
- サポートページ
- プライバシーポリシー
スクリーンショットは、日本語6枚、英語6枚を作りました。iPhoneで画面を撮影し、Figmaで背景、余白、見出し、画面の配置を調整しています。
App Store Connectには初めて見る入力項目が多く、どこに何を書けばよいのか迷いました。そのたびにCodexへ項目の意味を説明してもらい、一つずつ入力を進めました。
Appleの追加質問がきた
提出から公開までは、次のように進みました。
| 日付 | 内容 |
|---|---|
| 2026年8月8日 | App Storeへ申請 |
| 2026年8月14日 | Appleから追加質問を受け取る |
| 2026年8月16日 | 審査を通過しアプリを公開 |
8月14日に届いたのは「Information Needed」という追加質問でした。英語のメッセージを読んでも質問の意図や、どこまで説明すればよいのかが分かりませんでした。
Codexと相談しながら、まず質問を日本語で整理し、実際のアプリの動きに沿って回答案を作りました。私のケースでは、次の内容を英語で説明しています。
- アプリの機能、対象者、提供する価値
- 医療行為をするアプリではないこと
- ログインせずに使えること
追加質問へ回答した後、8月16日に審査を通過しました。ようやく公開まですることができました。公開できたときは、「やっと終わった」という安堵が先にありました。
おわりに
理学療法士として働く中で感じていた不便を、自分でアプリにしてみようと思ったところから始まった開発でした。
作り方も公開する手順も分からず途中では何度も作り直しました。それでも、Codexに相談しながら一つずつ進め「からだを伝えるノート」をApp Storeへ出すことができました。
今回で、初めてのiOSアプリ開発から公開までのシリーズは終わりです。これから個人開発を始める方に参考になればと思います。
最後まで読んでいただき、ありがとうございました。