LoginSignup
1
4

More than 3 years have passed since last update.

【react-native】pod instal 時の glog(0.3.5) でのエラー

Last updated at Posted at 2019-11-26

最初に

新しい MacBook に react-native の環境を構築しようとしたところ謎のエラーが出て...丸1日ハマりました。
20191126-01.png

発生したエラー内容

Installing glog (0.3.5)
/bin/bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory

pod install 時に glog(※) の ios-configure-glog.sh にて Windows でも馴染みの 改行コード CRLF で保存されたスクリプトが実行される ことで解析エラーとなっています。

   ※Google のログ出力用のライブラリ

試したこと

他の MacBook 環境では発生しなかったので完全に原因が不明でした。
この問題を解決させるために、

  • ruby の各バージョンのインストール
  • node.js の各バージョンのインストール
  • cocoapod の各バージョンのインストール
  • XCode 10.1, 10.2, 11.1 を再インストール
    • xcode-select で SDK ツールの切り替え

とやったのですが、全く効果が見られませんでした...(´;ω;`)

最終的にはこちらの記事を参考に、試行することで解決できたので謝辞とともに手順を記載していきます。
素晴らしい調査ありがとうございます。

対応策としては 「CRLF になってしまうなら LF に直せば良いよね」という発想です。

まずは変換ツールを入れよう

# Homebrew で CRLF=>LF に変換するツールをインストールします
brew install dos2unix

これが無いと始まらないです。

ツールを入れたら...

対象プロジェクトで yarn install は予め行っておき node_module が存在する 状態にしておきます。
その後「テキストエディタ」で下記ファイルを開き、

node_modules/react-native/scripts/ios-configure-glog.sh

31 行目の ./configure と記載されてる一つ前の行に

dos2unix -f *

上記コードをコピーし挿入します。編集後は、下記のようになります。
20191126-02.png

その後、ターミナルで iOS ディレクトリに移動し pod install を行うと....
20191126-03.png

無事、成功しました。

ただこの後 XCode でビルドエラーが起きてしまうことがあるので、その場合は node_module 内の glog/config.h を Pods に手動コピーする必要があります。

# プロジェクトの TOP ディレクトリに移動して実行する
cp node_modules/react-native/ReactAndroid/src/main/jni/third-party/glog/config.h ios/Pods/glog/src

※名前が ReactAndroid となっていますが正しいです。

終わりに

問題は解決したのですが、PC によってこの事象が発生したりしなかったりで根本的な原因がわからなかった。
glog が CRLF で保存されているなら、すべての MacBook で本事象が起きてもおかしくないハズ...

なぜこうなってしまうのか原因がわかる方がいましたら教えていただけますと幸いです。

参考記事:
pod install errors on newly detached app on MacOS installing GLog - : /bin/bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory

1
4
0

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
1
4