【react-native】pod instal 時の glog(0.3.5) でのエラー
最初に
新しい MacBook に react-native の環境を構築しようとしたところ謎のエラーが出て...丸1日ハマりました。
発生したエラー内容
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 ツールの切り替え
- 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 *
上記コードをコピーし挿入します。編集後は、下記のようになります。
その後、ターミナルで iOS ディレクトリに移動し pod install を行うと....
無事、成功しました。
ただこの後 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 で本事象が起きてもおかしくないハズ...
なぜこうなってしまうのか原因がわかる方がいましたら教えていただけますと幸いです。
Author And Source
この問題について(【react-native】pod instal 時の glog(0.3.5) でのエラー), 我々は、より多くの情報をここで見つけました https://qiita.com/fujimaring/items/2e7ec54ba6d4a6703c26著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .