最初はReact NativeがいちいちOSに合わせて記述しなくていい夢のような存在だと思っていました。( このあと待っている壮絶なエラーとの戦いは知らずに… )
『 昨日までは元気に動いていたアプリが次の日になったら真っ赤な画面でターミナルには大量のエラー文だらけ――。 』
『 何度かに1回だけ正常に動く!けど次にはエラー… 』
『 podを何度インストールし直してもダメ 』
こんな状況になっていました。当時は数人でAndroidサイドを中心にアプリの開発を進めていて、僕はiOSサイドの開発作業担当でした。前日まで動いていたものが動かない!復旧作業に明け暮れるも1つ直ったら次は2つ、3つと新しいエラーが止まらない現実に絶望して半泣きで作業を進め気がついたときには半年が経過…
当初の開発計画はとっくにポシャり( お金をもらう案件でなかったのが幸いだった )「 始めた以上やりきらないといけない 」という辞めるに辞められない状況が続き、精神的にもしんどかった思い出です。( 今でもビルドを押すのは怖いし、code 65は見たくない… )
この記事は僕と同じ境遇の方がもし居たら助けになればと思い、当時戦っていたエラーと対処法をまとめました。正直なところ、どれが決定打だったのかはハッキリしませんが僕の環境ではこれでどうにかなりました。
戦ったエラーまとめ
A. Hermesエンジンの設定をXcodeでfalseにする。
A. サンドボックスのオフ。
- Xcodeでプロジェクトファイルを選択。
- Build Settings タブを開く。
- 「User Script Sandboxing」 を検索。
- 設定を 『 No 』 に変更する。
A. Xcodeのバージョンを落とす。さらに必要であればライブラリ管理ツールであるCocoa Podsのバージョンも落とす。
個人的な見解ですが、使用しているライブラリとビルド環境との相性が大きな原因だと考えています。最新のXcodeがリリースされた直後は、既存のライブラリがその変化に対応しきれず、エラーを吐くことがよくあります。
また、アプリを組み立てる「ビルド」の工程では、XcodeだけでなくCocoaPodsも密接に関係しています。Xcode側が求めるビルド設定と、CocoaPodsが生成するスクリプトの整合性を整えることで、びっくりするほどエラーが解決されることがあります。
Apple Developer – More Download:https://developer.apple.com/download/all
検索ボックスに『 Xcode 』と入れると過去バージョンが出てきます。
『 View Details 』を押してダウンロードしたいファイルをクリックするとダウンロードが始まります。
出典:Apple Developer – More Download
“https://developer.apple.com/download/all/“
( 2026年2月9日参照時点の写真です )
A. module. Mapファイルの確認とCocoa Podsのバージョンを下げる。
当時実施に行った対策ですが、これは意味があったのか正直謎なところです。
A. Xcodeワークスペースを開いた状態でビルドする。
当時のメモに書いてあったことですが、一切記憶に残ってないので解決するかは…。
そのほかで試した解決方法!
上記以外に行ったこと!( これからの内容のほうが影響は大きかった気がします )
とりあえず、キャッシュ関連やライブラリを消し飛ばしてクリーンな状態に戻す。
実際にエラーを解決できるようになった最後の方ではこれを多用しました。
当時実際に使用していた削除用Scriptの中身
rm -rf ~/Library/Developer/Xcode/DerivedData
pod cache clean --all
rm -rf Pods
rm -r Podfile.lock
pod install --repo-update
実は私の環境には諸事情でウイルス対策ソフトが入っていました。正直これの設定ミスなどが一番の理由だったのでは?と今では思っています。
私の環境の設定ではフォルダ保護がオンになっていました。開発中していたアプリのフォルダはこの保護されたフォルダの中に含まれていました。
前に上げたような方法で修正を加えてもファイルだ足らない!というエラーが出続けていました。『 まさか… 』と思ってウイルス対策ソフトの保護機能をOFFにしたところ…
『 エラーが消えた―― 』
すべての人がこうなる訳ではありませんし、対策ソフト自体には普段使いで助かったこともあります。僕自身の設定と使い方が原因の大部分ではありますが、ウイルス対策ソフトが入っている環境でしたら一度確認してみるのも手だと思います。
- ファイル、フォルダに『 _ 』をつけてもビルド対象外にはならず退避できない
Xcodeが自動マッピングするのでwithout expoの前に配置するようにする。 - ビルド中にビルドを止めない
止めた場合はキャッシュを消し、再度ビルドする。 - 実機ビルドで『 信頼されていないデベロッパ 』と出た場合
実機スマホから設定からアプリを開いてアプリをビルドした際に使用したメールアドレスを『 安全だよ! 』と手動で許可を出す。
さいごに
当時の開発は「まずAndroidで新機能の実装!その後、ある程度機能が形になったところでiOSに対応させる」というペースで開発を行っていた為、iOS側特有のエラーが解決されないまま蓄積した状態からのスタートでした。( 今振り返っても、あまりにも行き当たりばったり過ぎたと反省しています… )
ただ、この経験のおかげで今は初期の環境構築と構成定義には特に慎重に時間をかけて取り組むようになりました。
皆さんもマルチプラットフォーム開発における環境構築と開発の後回しにはご注意ください!!本記事が少しでも皆さんのトラブルシューティングの役に立てば幸いです。
最後までお読み頂き、ありがとうございました!
次は何をいじくり回しましょうか?お楽しみに!


コメント