LoginSignup
12
4

More than 5 years have passed since last update.

新規React-nativeプロジェクトのビルドが失敗した時の対処法

Last updated at Posted at 2018-10-15

概要

XCode 10でreact-native initで作成したプロジェクトでreact-native run-iosを実行した際、色々と詰まったので、その対処法メモ

実行環境

  • XCode 10.0
  • React Native 55.4

はじめに

XCodeを最低一度起動しておく

XCodeをダウンロードした直後、またはアップデートした直後である場合、XCode起動時に必要な処理が行われるので、一度実行しておく

出てきたエラーとその対処法

":CFBundleIdentifier", Does Not Exist

最初にreact-native run-iosを起動した時、下記エラーが表示された

Installing build/Build/Products/Debug-iphonesimulator/react-native-test.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=22):
Failed to install the requested application
The bundle identifier of the application could not be determined.
Ensure that the application's Info.plist contains a value for CFBundleIdentifier.
Print: Entry, ":CFBundleIdentifier", Does Not Exist

Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/react-native-ble-test.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

このエラーが出た場合、プロジェクトをXCodeで開いてBuild Locationを設定する必要がある

対処法

  • iosディレクトリに入っている<プロジェクト名>.xcodeprojをXCodeで開く
  • Menu > File > Project Settings...を選択
  • Advanced... を選択
  • Customにチェックをして、すぐ横のドロップダウンからRelative to workspace を選択
  • Doneを選択

*追記: 上記手順後、XCodeを再起動すれば改善されたというコメントを頂きました

fatal error: 'config.h' file not found

再度ビルドを試みた際、config.hが見つからないと表示された

#include "config.h"           // to figure out pthreads support
         ^~~~~~~~~~

対処法

このエラーが出た場合、react-nativeディレクトリの中のglogconfigureを起動すればconfig.hが生成される

* configureを起動するのはglogフォルダの中である必要がある
** glogの位置はReact-Nativeのバージョン、または実行環境によって異なる場合がある。
*** 追記: glogが見つからない場合、node_modules/react-native/scripts/内にある./ios-install-third-party.shを起動するとthird-partyフォルダが作成され、その中にglogフォルダが作成される

$ cd node_modules/react-native/third-party/glog-0.3.4/
$ ./configure
$ cd ../../../..

この手順の後、再度ビルドを試みる

error: Build input file cannot be found: 'libfishhook.a'

このエラーが出た場合、libfishhook.aファイルを再生成する必要がある。

  • iosディレクトリに入っている<プロジェクト名>.xcodeprojをXCodeで開く
  • XCodeにて、LibrariesディレクトリにあるRCTWebSocket.xcodeprojを選択する
  • 上部メニューにあるBuild Phasesを開く
  • Link Binary with Librariesを選択
  • libfishhook.aが表示されている場合、選択して、下部に表示されてる-を押して削除する
  • 下部に表示されてる+を選択してlibfishhook.aを選択してAdd

場所がわからない場合、この画像を参照

参考

12
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
4