Cordovaの環境を作った際に何度か詰まったので、備忘録を残しました。
(AndroidStudioを構築済みであるため、同じSDKを使用)
1.Node.jsのインストール
CordovaはNode.jsの上で動くので、https://nodejs.org/ja/ からインストーラをダウンロードしてインストール
2.Cordovaのインストール
sudo npm install -g cordova
3.プロジェクトの作成
cordova create HelloCordova
cd HelloCordova
4.プラグインの追加
AndroidとiOSのプラグインを追加したかったため、以下をターミナルで入力
cordova platform add ios android
5.Androidビルド1回目
以前にAndroidStudioを入れていたので、AndroidSDKやJDKは導入済みであったが、以下のエラーが発生
cordova run android
//エラー内容
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
Requirements check failed for JDK 1.8
どうもJDK8を入れないとCordovaはビルドできない模様(このPCはJDK10を入れていた)
6.JDK8の導入
JDK8はOracleのページからダウンロードしてインストール
その後インストールされていることを確認
/usr/libexec/java_home -V
//出力内容
Matching Java Virtual Machines (2):
10.0.2, x86_64: "Java SE 10.0.2" /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
1.8.0_191, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
環境設定ファイルを開く
open ~/.bash_profile
以下を追記(jdk1.8.0_191.jdkへのパスを通した)
export PATH=$PATH:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/bin
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home
確認
java -version
//出力内容
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
7.Androidビルド2回目
cordova build android
//エラー内容
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
Android Studioのgradleが発見できないようなので再度環境設定ファイルを開く
8.Gradleのパスを設定
open ~/.bash_profile
以下を追記(このPCのgradeのバージョンは4.6)
export PATH=$PATH:"/Applications/Android Studio.app/Contents/gradle/gradle-4.6/bin"
9.Androidビルド3回目
cordova build android
//エラー内容
gradle: Command failed with exit code EACCES
gradleの実行権限がないらしいので設定
10.Gradleの権限設定
実行権限を設定
chmod +x "/Applications/Android Studio.app/Contents/gradle/gradle-4.6/bin/gradle"
確認
ls -l "/Applications/Android Studio.app/Contents/gradle/gradle-4.6/bin/gradle"
//出力内容
-rwxr-xr-x
11.Androidビルド4回目
cordova build android
//出力内容
BUILD SUCCESSFUL in 1m 59s
ようやく成功しました
12.iOSビルド
cordova build 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 (/usr/local/lib/node_modules/cordova/bin/cordova:30:15)
at process._tickCallback (internal/process/next_tick.js:68:7)
iOSのデベロッパー登録をしていないので、エラーが起こる模様
なおWindowsだとリモートでXcodeを指定するらしい
デベロッパー登録はまだ行う予定がないのでここまでで終了
感想
Cordovaの環境作りはネイティブに比べて面倒だと聞いていたが予想以上だった。
最近の開発ツールは環境変数の設定が不要のものも多いため久しぶりに環境変数を編集したと思う。
Visual Studio Tools for Apache Cordovaも何故かVisual Studio for Macでは提供されていないなど、どの環境でクロスプラットフォーム開発をすべきかといったことを決めるのは中々骨が折れそう