道の駅ぽんまる開発手順書 ・ 第3回
#3 WindowsだけでiPhone実機まで — 0円で確かめる
前回でデータが揃いました。次は、そもそもWindowsだけで iOS アプリが作れるのかの確認です。
目的
1円も払わずに、iPhone実機で自分のアプリが動くところまで到達すること。
iOSアプリ開発にはMacが要る、というのが一般的な理解です。手元にはWindowsしかありません。そしてApple Developer Program(以下ADP)は年額約1.3万円。
ここで方針を決めていました。
ADPの支払いは、動作確認が終わって「いざリリース」というタイミングまで引っ張る。
先に払えば「審査を通せるか」というリスクを早く潰せます。実際そう提案されましたが、2度とも後払いを選びました。理由は単純で、動くかどうか分からないうちに払いたくなかったからです。生じる待ち時間は許容する、と決めて進めています。
なので、まず0円でどこまで行けるかを確かめました。
手順
1. Expo Go で通す経路を組む
確定した経路はこれです。
Windows (Node 22.22.2)
→ Expo プロジェクト
→ Metro Bundler(有線LAN経由)
→ iPhone標準カメラでQRを読み取り(exp:// スキーム)
→ Expo Go アプリ
→ 実機で起動
所要:初回セットアップから約20分。支払い:0円。
ポイントは、iOS版のExpo Goにはアプリ内にQRスキャナがないことです。iPhoneの標準カメラでQRを読むと、exp:// のURLスキームからExpo Goが開きます。ここで少し迷いました。
2. SDKのバージョンを固定する
ここが最大の落とし穴でした。create-expo-app@latest を使ってはいけません。
| 項目 | 値 |
|---|---|
| Expo SDK | 54に固定(@latest を使わない) |
| React Native | 0.81.5 |
| React | 19.1.0 |
| コード置き場 | OneDriveの外(node_modules を同期させない) |
理由は次の事故のとおりです。
3. コードはOneDriveの外に置く
node_modules はファイル数が膨大で、クラウド同期と相性が最悪です。同期中のロック競合でビルドが壊れます。コードはOneDriveの外に置き、バックアップはGitのリモート(GitHubのプライベートリポジトリ)で取る構成にしました。
つまずいた点
事故1: create-expo-app@latest は Expo Go より先を行く
@latest で作ったプロジェクトは SDK 57 でした。ところがApp Storeで配布されている Expo Go は SDK 54 までしか対応していません。Expo Goは一度に1つのSDKしかサポートしないためです。
結果、実機でアプリが開けませんでした。
対策: 最初からSDKのバージョンを明示して作る。
補足として、これは開発中(Expo Go)の制約であって、出荷の制約ではありません。EAS Buildはスタンドアロンのアプリを作るので、SDK 54のままストアに出せます。実際そうしました。
事故2: SDKを下げても、上げたときの設定が残る
SDK 57 → 56 → 54 と下げる過程で、npx expo install --fix が app.json に plugins: ["expo-status-bar"] を追記していました。
SDK 54では expo-status-bar は config plugin ではないため、開発サーバーが起動不能になりました。エラーの表示だけを見ても、原因がバージョン変更にあると分かりません。
対策: SDKのバージョンを変えたら、
app.jsonのpluginsを必ず目視で確認する。
この2件は、どちらも「エラーメッセージからは原因にたどり着けない」タイプでした。バージョンの不一致を最初に疑うというのが、この領域での基本動作だと理解しました。
成果物
この段階で、戦略の前提だった未知がひとつ消えました。
コードが書けない人間が、Windowsだけで iPhone 実機まで到達できるか。 → 到達できた。所要20分、支払い0円。
ただし、まだ検証されていないことも明確でした。
| 検証済み | 未検証 |
|---|---|
| Windowsだけで実機に表示できる | 審査を通せるか |
| Expo Goで開発を回せる | 実ビルドで同じように動くか(アイコン・スプラッシュ・権限) |
Expo Goで動いても実ビルドで動くとは限りません。この差は後で実際に効いてきます(次回)。
そしてもうひとつ確定したのが、技術スタックの再利用性でした。ここで固めた構成(Expo SDK 54・EAS Build・Windows運用)は、そのまま2本目以降でも使っています。1本目のコストは、実は「1本分」ではありません。
次回は、ここからADPを払って審査に出し、1回リジェクトされるまでの話です。
この手順書の「実物」版
ここまでの記録は物語として書いています。実際に使ったファイルそのものは、有料記事にまとめました。
- 審査に通った設定ファイルの全文(
package.json/app.json/eas.json/ ストア文言) - 審査メモの全文と、却下への返信文の型
- リジェクト4回の全記録(何が届いて、本当の原因は何で、どう直したか)
- つまずき67件の逆引き表(症状 → 原因 → 対処)
- 提出前チェックリスト
稼ぎ方は書いていません。 2026年9月8日時点のダウンロードは、道の駅ぽんまるが公開26日で36件、とじまるが6日で7件です。売れる方法は、まだ分かっていません。
→ Windows1台・コード0行でiOSアプリを2本App Storeに出した全記録|審査4回リジェクトの原文と、通った設定ファイル(3,980円・Brain)
同じ記事を note でも同じ価格で出しています。安い経路はありません。