ぽんまるスタジオ

道の駅ぽんまる開発手順書 ・ 第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 SDK54に固定(@latest を使わない)
React Native0.81.5
React19.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回リジェクトされるまでの話です。

→ #4 提出前チェックと、リジェクト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 でも同じ価格で出しています。安い経路はありません。

#道の駅ぽんまる #Expo #React Native #iOS