「JavaScriptは動くのに、iOSアプリがシミュレーターで開かない」
最短の対処は、React Native 0.88の新規作成か旧版の更新かを分け、macOSとXcodeを確認してから進めることです。
React Native 0.88のiOSプロジェクトは実行できますが、iOS向けのビルドと検収にはmacOSとXcodeが必要です。新規作成なら公式テンプレートを使い、既存プロジェクトならUpgrade Helperで差分を確認してください。SceneDelegateは、iOS 27 SDKを使うかどうかを含めて判断します。
この記事は、初めてReact Nativeを学び、授業のプロジェクトをiOSシミュレーターで動かしたい学生向けです。
すでにプロジェクトがある人、Windowsや学校のパソコンで学んでいる人も、どの作業にMacが必要かを見分けられます。
最終更新:2026年10月20日。React Native公式の0.88リリースノート、環境設定、アップグレード資料を確認しています。
最初に新規作成か旧プロジェクトかを見分ける
React Nativeでは、画面やアプリの動きを記述するJavaScriptと、iOSアプリとして起動するためのネイティブ工程を分けて考えます。JavaScriptの開発サーバーであるMetroが立ち上がっても、iOSアプリのビルドや起動が成功したとは限りません。
まず、手元のプロジェクトがどちらに当たるかを決めます。新しく始める人は0.88の公式テンプレートを使い、授業で配布されたプロジェクトを使う人は、現在のReact Nativeバージョンを調べてから更新範囲を確認してください。
| いまの状態 | 先に行うこと | 避けたい進め方 |
|---|---|---|
| 新規プロジェクト | 公式の0.88作成手順とテンプレートを確認する | 古い記事のAppDelegate設定をそのまま加える |
| 既存プロジェクト | 現在の版を調べ、Upgrade Helperで差分を見る | 作業コピーを残さず一括で更新する |
| Windowsだけ使える | JavaScript側の作業とiOS検収を分ける | Metroが動いたことをiOS実行成功とみなす |
React Native 0.88の公開情報では、SceneDelegateのライフサイクル対応が案内されています。一方で、リリースノートに「利用者向けの破壊的変更がない」とあっても、すべての旧工程ファイルやサードパーティー製ライブラリーに変更が不要という意味ではありません。
macOSとXcodeの準備状況を確認する
iOSシミュレーターは、iOSアプリをMac上で起動して動きを確かめるための環境です。Windows上でJavaScriptを書けても、iOS向けのネイティブビルドにはmacOSとXcodeが必要です。使えるXcodeやmacOSの組み合わせは変わるため、作業前にReact Native公式の環境設定手順を確認してください。
プロジェクトのルートで、まず利用しているReact Nativeの版とパッケージ管理方法を確認します。package.jsonのreact-native欄、ロックファイル、授業資料を見比べれば、0.88へ更新すべきか、授業指定の版のまま進めるべきかを判断できます。
準備段階で、次の点も確認してください。
- 課題の目的は、画面の作成だけですか。それともiOSシミュレーターでの起動まで含みますか。
- すでに使っている依存ライブラリーが、更新後のReact Nativeに対応しているか確認できますか。
- Xcodeを開けるmacOS環境がありますか。学校の端末を使う場合、ソフトウェアの追加や設定変更が許可されていますか。
- 旧プロジェクトなら、変更前のファイルへ戻せるコピーがありますか。
学校のパソコンでソフトウェアを追加できない場合は、先に授業の担当者へ利用できるMac環境と検収方法を確認します。自分の端末で開発できることと、提出前にiOSで動作確認できることは別の条件です。
新規テンプレートと旧版の更新を分けて準備する
新規作成は生成されたiOS工程を起点にする
新規プロジェクトでは、React Nativeの公式入門手順に沿って作成方法を確認し、0.88のテンプレートから始めます。作成後は、iOS工程に含まれる起動関連ファイルを確認してください。公式の0.88リリースノートではSceneDelegateへの対応が説明されています。
SceneDelegateは、iOSがアプリの画面やシーンのライフサイクルを扱うための入口です。iOS 27 SDKを使うときに確認が必要なUISceneは、そのシーンをどう構成するかに関わる仕組みです。テンプレートが必要な設定を生成している場合は、旧記事のAppDelegate手順を追加する前に、差分と生成ファイルの内容を照合してください。
旧プロジェクトは変更点を比べてから直す
すでに授業用プロジェクトがある場合は、まず変更前のコピーを作り、現在のReact Nativeの版を確認します。そのうえでUpgrade Helperを使い、現在の版と0.88の間でiOS工程のファイルにどんな差があるかを見ます。
iOS 27 SDKを採用する場合は、アプリの起動経路だけでなく、Info.plistのシーン設定やURLコールバックの転送も確認対象です。Appleのシーンベースのライフサイクルへの移行説明とアプリが対応するシーンの設定資料を読み、採用するSDKとテンプレートの状態に合わせて判断します。
注意:SceneDelegateを含む差分を見つけても、すべての設定を機械的に移植しないでください。既存のアプリ構成や依存ライブラリーを確認し、どのファイルを変更したか記録してからビルドします。
依存関係を整えてシミュレーターを起動する
準備ができたら、次の順番で進めます。コマンドはプロジェクトの作成方法やパッケージ管理により異なるため、公式の環境設定手順にある該当手順を優先してください。
- 変更前のコピーを用意し、
package.jsonでReact Nativeの版を確認します。 - プロジェクトが指定するパッケージ管理方法で依存関係を整えます。授業資料に異なる指示がある場合は、勝手に混ぜず、どちらを使うか確認します。
- MacでiOS工程を開きます。CocoaPodsなどの準備が必要な場合は、公式手順に沿って実行し、エラーが出たら最初のエラーを記録します。
- Xcodeで利用可能なiOSシミュレーターを選び、プロジェクトをビルドして起動します。React Native公式のiOSシミュレーター実行手順で、コマンドと画面操作を照合してください。
- アプリ画面が開いたら、課題の最初の画面や操作を確認します。ビルドログ、使用したツールの版、エラー内容を残します。
| 起きていること | まず見る場所 | 次の確認 |
|---|---|---|
| ビルドが始まらない | Xcodeが使えるか、依存関係の準備が完了したか | 最初のエラーと公式手順を照合する |
| ビルドは終わるがアプリが開かない | Xcodeの実行ログとシミュレーターの選択 | アプリの起動処理と工程ファイルの変更を確認する |
| アプリは開くが画面がおかしい | Metroのログ、JavaScriptのエラー、課題の画面 | ネイティブ起動と画面表示を別々に調べる |
Metroだけ起動している状態は、iOSのビルド完了ではありません。どこで止まっているかを「依存関係」「ネイティブビルド」「アプリ起動」「画面表示」に分けると、授業の質問やエラー報告も具体的になります。
よくある疑問を実行前に解消する
新しいプロジェクトでSceneDelegateを手動追加しますか?
まず公式0.88テンプレートが生成したiOS工程を確認します。すでに必要な構成が含まれている場合、旧手順の設定を重ねて追加すると、起動処理が意図せず変わるおそれがあります。
旧版から更新する場合、最初に何を残せばよいですか?
元に戻せるコピーと、現在の依存関係が分かるファイルを保管します。Upgrade Helperで差分を確認したら、iOS工程の変更を小分けにして適用し、変更ごとにビルドを確かめます。
Xcode 27を使うときは何を確認しますか?
iOS 27 SDKを選ぶ場合は、UISceneの要件とプロジェクトのシーン構成を確認します。SceneDelegateへの入口移行、Info.plistの宣言、URLコールバックの受け渡しが既存構成と一致するか、AppleとReact Nativeの公式資料で照合してください。
Macがなくても授業課題を最後まで確認できますか?
JavaScriptの編集や一部の動作確認は進められますが、iOSネイティブのビルドとシミュレーター起動はmacOSとXcodeの環境が必要です。課題がiOSでの起動を求めるなら、提出前に利用できるMac環境を確保してください。
授業のプロジェクトで検収方法を決める
最後に、チュートリアル用の空のプロジェクトではなく、自分の授業プロジェクトで一度ビルドします。次の項目を埋めれば、環境の問題とアプリ固有の問題を切り分けやすくなります。
- [ ]
package.jsonと授業資料でReact Nativeの版が一致している。 - [ ] 使ったmacOSとXcodeの版を記録した。
- [ ] 依存関係の準備が完了し、エラーが残っていない。
- [ ] 選んだシミュレーターでiOSアプリのビルドが完了した。
- [ ] Metroの起動だけでなく、アプリの画面が開くところまで確認した。
- [ ] SceneDelegateやInfo.plistを変更した場合、その理由と変更箇所を記録した。
いまの環境を続けるか、Macを一時的に使うか
WindowsでJavaScriptを書く環境はそのまま使えますが、iOS工程を実行できず、Xcode上のログやシミュレーターでの確認もできません。学校の端末では設定変更が制限される場合もあり、課題の直前にMacを借りられるか探す方法では、検収の予定を立てにくくなります。
iOSシミュレーターでの確認が課題に含まれ、手元にMacがない場合は、購入を急ぐ前に一時的に利用できるMac環境を比べる方法があります。MACCOMEの案内で利用条件を確認し、必要な期間や接続方法が授業の手順に合うかを見てください。長期にわたり毎日使う場合や、手元の物理機器との接続が必要な場合は、自分でMacを用意する方法とも比べて選びましょう。合わせてMacの利用案内と、Mac miniを用意するときの選択肢も確認できます。