なぜ古いcordovaで環境構築するのか
案件の中でcordovaのバージョンが最新ではなく特定のバージョンが指定されており、環境構築に結構苦労したので記載します。
対象はcordova-androidの4.0.2が対象になります。
注意
2017/07の時点でcordova-androidの最新バージョンは6.2.3になります。基本的にcordovaは後方互換は保障しているので、特別な事情がない限りは最新版を使うことをおすすめします。
また、googleサポートから4.1.1以前のcordova-androidで構築されたアプリはGoogle Play での公開ができません。
Apache Cordova の脆弱性を含むアプリを修正する方法
Apache Cordovaの公式からも5.1.0以上の使用を推奨しており、本当に特別な理由がない限り4.X系のcordova-androidを使用することはないと思います。
CVE announcements for Cordova-Android
Cordova4.0.2環境の構築方法
前提条件
- node,npmがインストールされていること(バージョンは任意)
-
cordovaがインストール済みならアンインストールします
.bashnpm uninstall -g cordova
-
cordovaをインストールします
cordova-androidの4.0.2をインストールするためには、cordova-cliを5系にする必要があります。npm install -g cordova@5.4.1
-
インストールが正常に完了したかどうか確認します。バージョンが表示されればインストール完了。
.bashcordova -v
-
適当なディレクトリに移動し、以下のコマンドを実行してcordovaのプロジェクトを作成します。
cordova create cordovaSample com.example.hello CordovaSample
-
作成したcordovaのプロジェクトに移動し以下のコマンドでandroidプラットホームを追加します。追加が成功した場合はplatformsフォルダが作成され、配下のplatform.jsonにバージョン情報が追加されます。
.bashcordova platform add android@4.0.2
Android SDKのインストール方法
AndroidSDKのインストールはAndroid Studioを使用してのインストールが推奨されていますが、
SDK toolsのバージョン25.3.0以降よりtoolsの構成が変わってしまっています。
そのため古いcordovaではその構成に対応しておらずemulateなどの幾つかのコマンドが実行できないです。
そのため、以前のSDK toolsを使用してSDK等のダウンロードを行う必要があります。
SDK Tools Release Notes
-
Android Studioなどを使用してSDK等をインストールしたことがある場合は全て削除します。
-
AndroidのSDKが保存されていたディレクトリに移動します。sdkフォルダが存在する場合は削除し、もう一度sdkフォルダを作成します。
Windowsの場合 C:/Users/{ユーザ名}/AppData/Local/Android/Sdk Macの場合 /Users/{ユーザ名}/Library/Android/sdk
-
以下からSDK toolsをダウンロードします。ダウンロードしたファイルをsdkフォルダ配下にコピー。コピーしたらzipを解凍します。
-
windowsの場合はsdk/toolsに移動しandroid.batを実行し、Android SDK Managerを起動します。Macの場合はターミナルでtools配下に移動し以下のコマンドを実行します。
.bashandroid sdk
-
SDK Manager で下記のものをインストール。
- Android SDK Tools
- Android SDK Platform-tools
- Android SDK Build-tools
- Android5.1.1(API 22)
- Android4.4.2(API 19)
- Extras全て
-
開発対象プロジェクトに戻りエミュレータを起動します。正常に起動できればOK。なお、エミュレータなどの設定はAndroid Studioを使用して問題ありません。
.bashcordova emulate android
おわりに
以上でcordova-android4.0.2に環境構築は終わりです。手順として書いてしまうと簡単なのですが実際は情報が少なくトライアンドエラーで大変でした。