macでcordova環境を作ろうとしてつまづいたところ
monacaから脱出して自分で環境構築しようとしたがたくさんつまづいた。
手順をひきながら調べらながらでやっと到達した。
駆除したエラーの数々。。
npm install -g cordovaが実行できない
→nodebrewのインストールをcurlではなくてbrewでやってみる。
brew install node
brewコマンドを実行するとgccをインストールしなさいと怒られる.
Error: An exception occurred within a child process: CompilerSelectionError: nodebrew cannot be built with any available compilers. Install GNU's GCC
gccを入れる。
brew install gcc
gccを入れてもまたまた怒られる。
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
xcrunがなくなったとかなんとか。これは同じ症状の人がたくさんいた。macのOSアップデートしたらなったとかなんとか。
xcode-select --install
これでこのエラーは消えた。
再度実行するも、npmが実行できない
→nodebrewのバージョンを指定すると実行できるように。
nodebrew use v10.14.2
やっとここまででcordovaコマンドが使えるようになった。
cordova run iosでエラーがでる
CordovaError: Promise rejected with non-error: 'xcode-select: error: tool \'xcodebuild\' requires Xcode, but active developer directory \'/Library/Developer/CommandLineTools\' is a command line tools instance\n' at cli.catch.err (/Users/username/.nodebrew/node/v10.14.2/lib/node_modules/cordova/bin/cordova:30:15) at process._tickCallback (internal/process/next_tick.js:68:7)
インストールしているディレクトリがダメだよと怒られているみたい。
xcode-select --switch /Applications/Xcode.app
でこのエラー出なくなった。
またまたcordova run iosで以下のエラー
No target specified for emulator. Deploying to iPhone-X, 12.1 simulator /Users/username/VoiceApp/platforms/ios/build/emulator/HelloCordova.app/Info.plist file not found.
iosのエミュレータを実行しようとするとplistが見つからないと言われる。
cordova run ios --buildFlag='-UseModernBuildSystem=0’
実行する際にパラメータを指定してやるといいいよということで、こちらでエラーは出なくなった。
でも毎回パラメータつけなくちゃいけないのは面倒。
cordova run android のエラー
Error: Requirements check failed for JDK 1.8 or greater
これはjavaが複数入っていたのが原因みたい。
ここを参考にして前のjavaを全部消して再度java8をインストールする
Cordova向けにJDKを再インストール - Qiita
javaを入れ直したらエラーが変わった。
Could not find an installed version of Gradle either in Android Studio,or on your system to install the gradle wrapper. Please include gradle in your path, or install Android Studio
gradleのパスを通してねということ。
echo 'export PATH="/Applications/Android Studio.app/Contents/gradle/gradle-4.6/bin":$PATH' >> .bashrc
パスを通してあげる。
gradle -vするとパーミッションで怒られたので権限を変える。
chmod +x /Applications/"Android Studio.app"/Contents/gradle/gradle-4.6/bin/gradle
再度cordova run android でエラーで怒られる。
You have not accepted the license agreements of the following SDK components: [Android SDK Platform 27].
ここを参考にSDK Manager の画面からライセンスに同意する。
MacでCordova開発環境を構築した備忘録 - Qiita
再度cordova run android
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
AVDのパスがないよと言われているみたいなので、パスを通してあげる
echo 'export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk' >> .bashrc
またパニック!と言われる。
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/Users/username/Library/Android/sdk]!
adndroid sdkの画面からエミュレータをダウンロードしてみたらエラーが変わった。適当にNexxus_5Xで最新のAPIを選択。
No emulator specified, defaulting to Nexus_5X_API_28 PANIC: Missing emulator engine program for 'x86’ CPU
今度はまた別のx86が見つからないよ、というエラーになる。
結局古いAPIのエミュレータを入れたら正しく起動できた。cordovaが最新のバージョンのAPIには対応していなかったらしい。
環境構築終わり。長かった。