Contents
M1 MacでReact Nativeビルドエラーが発生する主な原因
M1 MacでのReact Nativeビルドエラーは、チップのアーキテクチャ特性や環境設定ミスが主な要因です。特にARM64対応のパッケージ不足やXcodeとのバージョン不一致、Ruby環境の競合などが挙げられます。2023年現在では、Cocoapodsの利用制限やnpm install時のアーキテクチャ変換エラーが顕著に現れています。以下で具体的な対処法を解説します。
Cocoapodsが利用できない場合の代替インストール方法
M1 MacではCocoapodsの公式インストールが難しくなるケースがあります。代わりにHomebrew経由でのインストールや、ARM64対応パッケージを手動で導入する方法が有効です。
Homebrewでのインストール手順
M1 MacでCocoapodsを安定して利用するには、Homebrew経由でのインストールが推奨されます。以下に手順を示します。
-
Homebrewの最新版を確認する
bash
brew update -
Cocoapodsのインストールを実行
bash
brew install cocoapods -
Ruby環境のパスを通す(RVMユーザー向け)
bash
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
注意: RVMを使用している場合、
gem install cocoapodsではなくHomebrew経由でインストールすることでARM64対応が確実です。
ARM64対応パッケージの確認
以下のコマンドでCocoapodsのアーキテクチャを確認してください。
|
1 2 |
file $(which pod) |
出力例:
|
1 2 |
/usr/local/bin/pod: Mach-O 64-bit x86_64 executable (compatibility version) [arm64] |
x86_64ではなくarm64が表示される場合は、インストールが正しいです。
XcodeバージョンとReact Nativeバージョンの互換性チェック
XcodeとReact Nativeのバージョン不一致は、ビルドエラーの主要原因となります。2023年現在では以下のような組み合わせが推奨されています。
| React Native バージョン | 推奨 Xcode バージョン |
|---|---|
| 0.72.x | Xcode 14.3 |
| 0.71.x | Xcode 14.1 |
| 0.69.x | Xcode 14.0 |
公式サポートマトリクスの確認方法
React Native公式サイトのサポートマトリクスで、使用しているバージョンに対応するXcodeバージョンを確認してください。不一致がある場合、npx react-native doctorコマンドで警告が表示されます。
Xcode更新時の注意点
- 更新前にはプロジェクト内のPodfileを確認し、
platform :ios, '15.0'などの設定値を最新のXcodeバージョンに合わせて修正してください。 - 更新後は必ず
pod repo updateとpod installを実行して依存関係を再構築します。
npm install時におけるARM64アーキテクチャ対応の注意点
M1 Macではnpm install時にARM64対応していないパッケージがエラーになるケースがあります。特にnativeモジュールやネイティブライブラリはアーキテクチャに敏感です。
node_modulesのクリーンインストール手順
以下の手順でnode_modulesを再構築し、ARM64対応を確認してください。
-
既存node_modulesを削除
bash
rm -rf node_modules -
パッケージを再インストール
bash
npm install -
ARM64対応の確認(必要に応じて)
bash
arch -arm64 npm install
注意:
npm install時にnode-gypが実行される場合、ARM64対応パッケージがないとエラーになります。その際は手動でnativeモジュールをリビルドしてください(下記参照)。
nativeモジュールの再ビルド方法
以下のように手動でリビルドします。
|
1 2 3 |
cd ios && pod install --repo-update && cd .. npx react-native run-ios |
Ruby環境(RVM使用時)のトラブル回避策
RVMを使用している場合、Rubyバージョンの競合やPATH設定ミスがCocoapodsエラーを引き起こします。
Cocoapods用Rubyバージョンの固定方法
-
現在利用中のRubyバージョン確認
bash
ruby -v -
特定バージョンへの切り替え(例: 3.0.4)
bash
rvm use 3.0.4 --default -
Cocoapodsの再インストール
bash
gem install cocoapods
PATH設定の確認手順
.zshrcや.bash_profileに以下の行があるか確認してください。
|
1 2 |
export PATH="$HOME/.rvm/bin:$PATH" |
存在しない場合は追加し、ターミナルを再起動してください。
Expoプロジェクトでのローカルビルドエラーの特定手順
ExpoでiOSローカルビルド中に発生するエラーは、環境設定や仮想マシンとの差異が原因となるケースが多いです。
エラーログの読み取りポイント
Cocoapods is not availableなどのメッセージが出る場合、Cocoapodsのインストール状態を再確認してください。Podfile not foundの場合は、プロジェクト初期化が不完全です。npx expo initで再度作成し直すことを検討してください。
仮想マシンとの環境差異対応
ローカルマシンの設定と仮想マシン(例: GitHub Actions)でアーキテクチャが異なる場合、以下の手順で対応します。
arch -x86_64 pod installでx86_64モードでのインストールを試すnpm config set script-shell bashを設定し、スクリプト実行環境を統一
注意:
npm config set script-shell bashは、zsh環境でbashスクリプトが正しく動作するようにするための設定です。特に古いツールやスクリプトとの互換性向上に役立ちます。
最終的なトラブルシューティングフローとサポートへの連絡方法
以下のステップでエラーの原因を絞り込み、解決策を適用してください。
- Cocoapodsが利用できるか確認
pod --versionでインストール済みか確認- XcodeバージョンとReact Nativeの互換性チェック
- npm install時のエラー内容を確認(ARM64対応パッケージがない場合)
- RVMユーザーはRuby環境のPATH設定を再確認
- ExpoプロジェクトならPodfileやスクリプト環境を再構築
依然として解決しない場合は、コメント欄に具体的なエラーメッセージと以下の情報を記入してサポートをご利用ください:
- 使用しているReact Nativeバージョン
- Xcodeのバージョン(
xcodebuild -versionで確認) - エラー発生時のコマンド一覧