React NativeでMac上のiOSアプリを開発するには、プロジェクト指定のNode.jsとJavaScript依存関係を先に整え、Xcodeと必要なCocoaPods依存を確認してから、シミュレーターまたはXcodeでビルドします。使うバージョンや具体的なコマンドは、プロジェクトの設定と公式ガイドに合わせてください。
この記事は、React NativeでiOS開発を始めるためにMac環境を整える開発者、CocoaPodsやiOS依存関係で止まっているフロントエンドエンジニア、ローカルまたはリモートのMacでビルドしたい個人・チーム向けです。
React NativeでMac上のiOSアプリ開発を始める環境確認
開発作業は、JavaScript側の準備、iOSネイティブ依存関係の導入、シミュレーター起動、Xcodeのビルドという流れで進みます。Mac上でmacOSとXcodeを使えることが前提ですが、CocoaPodsを使うか、実行コマンドが何かはプロジェクトの構成によって異なります。
React Nativeの環境構築ガイドを確認しつつ、プロジェクト内のREADME、package.json、ロックファイル、ios/Podfileを照合します。package.jsonのengines欄にNode.jsの条件が記載されている場合は、その指定を優先してください。npmのpackage.jsonリファレンスでは、この欄を含む設定項目を確認できます。
| 作業段階 | 確認するファイル・状態 | 次へ進む目安 |
|---|---|---|
| JavaScript環境 | package.json、ロックファイル |
指定されたNode.jsとパッケージマネージャーが使える |
| iOS依存関係 | ios/Podfile、Podfile.lock |
プロジェクトの手順でPodsを導入できる |
| シミュレーター | Xcodeの実行先と使用可能なSDK | 対象プロジェクトで選べる実行先がある |
| ビルド | Xcodeのワークスペースまたはプロジェクト | ビルドログにエラーがなく、アプリを起動できる |
この確認は、バージョンを先回りして固定するためではありません。プロジェクトが要求する条件と、Macに実際に選択されているツールチェーンの食い違いを、作業開始前に見つけるためのものです。
Node.jsとJavaScript依存関係の準備
まずプロジェクトのREADMEとpackage.jsonを開き、指定されたNode.jsの条件、使用するパッケージマネージャー、起動スクリプトを確認します。パッケージマネージャーはロックファイルの種類と揃え、別のツールで依存関係を入れてロックファイルを混在させないようにします。
ターミナルでは、node -vと使用するパッケージマネージャーのバージョン確認コマンドを実行し、プロジェクトの指定と一致するか見ます。依存関係のインストール方法は、ロックファイルやチームの手順に応じて選択してください。npmを使うプロジェクトでは、npmのインストールコマンドの説明を参照し、CI向けの手順をそのままローカル作業へ適用してよいかも確認します。
注意:Node.jsを更新した直後にビルドが失敗した場合は、まず依存パッケージの要件とロックファイルを確認します。原因が分からないまま複数のパッケージマネージャーでインストールし直すと、問題の切り分けが難しくなります。
Xcodeのツールチェーンとシミュレーター確認
Xcodeをインストールまたは起動したら、ライセンスへの同意、選択中のCommand Line Tools、追加コンポーネント、シミュレーターの利用可否を確認します。画面上の項目名や選択肢はmacOSとXcodeの版で変わることがあるため、手元の表示と開発元のXcode Command Line Toolsの案内を照らし合わせます。
必要なシミュレーターが見つからない場合は、プロジェクトが対象とするiOS SDKと、Xcode側で使えるコンポーネントを確認します。Xcodeの追加コンポーネントに関する公式説明に沿って必要なものを用意してください。SDKの対応可否を、別のMacでの設定や古いビルドログだけから決めつけないことが重要です。
CocoaPodsでiOS依存関係を導入
CocoaPodsは、iOSプロジェクトが指定するネイティブ依存関係を扱うために使われます。Podfileが依存関係の宣言元となり、インストール後には通常Podsディレクトリやワークスペースが生成されますが、これらが常に必要な構成とは限りません。まずREADMEとiosディレクトリの中身を確認します。
CocoaPodsを使う指示がある場合は、プロジェクトの指定するディレクトリへ移動してインストールします。pod installとpod updateは目的が異なり、後者は依存バージョンの更新を伴う場合があります。CocoaPodsのPodfileガイドとinstallとupdateの違いを確認し、通常の環境構築で意図しない更新を起こさないようにします。
ワークスペースが生成される構成では、Xcodeで.xcodeprojではなく.xcworkspaceを開く必要があります。プロジェクトに明記された開き方を優先し、Podsの導入後にファイルが見つからない場合は、コマンドを実行したディレクトリと生成物の場所を確認してください。
シミュレーター起動からXcodeビルドまで
準備ができたら、プロジェクトのpackage.jsonにあるスクリプトやREADMEの手順を使ってシミュレーター起動を試します。React Nativeの iOSシミュレーターでの実行ガイドでは、実行先の選択や起動方法を確認できます。サンプルのコマンドをすべてのプロジェクトに当てはめず、リポジトリの実行手順と一致させてください。
MetroはJavaScriptの開発サーバーであり、XcodeによるiOSネイティブ部分のコンパイルとは役割が異なります。Metroが起動してもXcodeビルドが成功したとは限らず、反対にビルド失敗の原因がJavaScript依存関係とは限りません。ターミナルとXcodeのログをそれぞれ確認し、どちらの工程で止まったかを特定します。
ビルドエラーをログから切り分ける
エラーの最初の具体的な行と、その直前に実行された処理を手掛かりにします。すべてのキャッシュを一括削除するより、次の順に設定と生成物を確認するほうが、原因と対処を結び付けやすくなります。
- Node.jsやJavaScript依存関係のエラー:
package.json、ロックファイル、Node.jsの条件、インストール時の出力を確認します。 - Podsの解決や読み込みのエラー:
Podfile、Podfile.lock、Podsの生成状況、Xcodeで開いたファイルを確認します。 - XcodeやSDKのエラー:選択中のXcode、Command Line Tools、利用可能なSDKとシミュレーターを確認します。
- 署名や実機向け設定のエラー:対象のビルド先、署名設定、チームの設定を確認します。実機への配布では登録デバイスやプロビジョニングの条件が関わるため、Xcodeで登録デバイスへ配布する際の説明も参照してください。
問題が依存関係の再解決で起きているのか、ネイティブのコンパイルで起きているのかを区別することが先決です。ログに現れたファイル名と設定項目を突き合わせ、変更する対象を限定してから再実行します。
作業前に確認するチェックリスト
- [ ] READMEと
package.jsonでNode.js、パッケージマネージャー、実行スクリプトを確認した - [ ] ロックファイルに合う方法でJavaScript依存関係を導入した
- [ ] Xcodeが起動し、Command Line Toolsと必要なシミュレーターを選べる
- [ ] CocoaPodsが必要なプロジェクトか確認し、指定された手順で依存関係を導入した
- [ ] Metroの起動状態とXcodeのビルド結果を別々に確認した
- [ ] エラーが出た場合、最初の具体的なログと関連する設定ファイルを照合した
Macをすでに使える開発者は、この順で確認すれば既存環境の問題を切り分けられます。手元の端末ではOS更新の調整、空き容量の確保、チーム内の環境差への対応も必要になるため、一時的なビルド環境を用意する選択肢もあります。利用可能なMac環境と条件は、ZutcloudのMac miniレンタル案内およびヘルプセンターで確認してください。長期間にわたり安定した重い処理を継続する場合や、手元の物理デバイスを直接接続する必要がある場合は、自前のMacのほうが適することもあります。
よくある質問
React NativeのiOS開発に必要な環境
macOSが動作するMacとXcodeを用意し、プロジェクトが指定するNode.js、パッケージマネージャー、JavaScript依存関係を確認します。CocoaPodsはプロジェクトが必要とする場合に設定し、PodfileやREADMEに記載された手順を優先してください。固定のバージョンや共通コマンドを全プロジェクトへ適用する方法は避けます。
CocoaPods依存関係のインストール
ios/PodfileとREADMEを確認し、CocoaPodsを使う構成なら指定された場所と方法で依存関係をインストールします。通常の依存導入と更新操作は同じではありません。ロックファイルを維持したい場面で、意図せず更新を行わないようコマンドの意味を確認し、生成されたワークスペースをXcodeで開く構成かも確認します。
Xcodeからシミュレーターを実行
Xcodeで利用できるシミュレーターを選び、READMEやpackage.jsonに記載された手順でアプリを起動します。React Nativeの開発サーバーであるMetroと、XcodeによるiOSネイティブのビルドは別工程です。起動できないときは、ターミナルの出力とXcodeのログのどちらに最初のエラーがあるかを見て、原因を分けて調べます。
iOSビルド失敗時の確認順
まずNode.jsとJavaScript依存関係、次にPodfileとPods、続いてXcodeのツールチェーンとSDKを確認します。署名や実機向けのエラーなら、ビルド先とプロジェクトの署名設定を調べます。ログを読む前に一律のクリーンアップを試すのではなく、失敗した工程と関連する設定を特定してから対処してください。
iOSアプリ開発に、Zutcloudの専用Mac環境を
実機のMac miniを専有できる環境で、開発からビルドまで安定して進められます。
遠隔から利用できるため、手元のMacの性能や作業場所に左右されず開発環境を整えられます。 今すぐ申し込む