Mac での Apache Cordova (PhoneGap) はじめの一歩

Mavericks で Cordova の HelloWorld を Android / iOS シミュレータ確認するまでの流れ

tmux だからハマったり Mavericks だからハマったりするところがちょいちょいある

インストール

npm install cordova -g

node.js をインストールしていない場合は brew install node とかでインストールしておく

プロジェクト作成

cordova create hello com.example.hello HelloWorld -d

成功したらカレントディレクトリに hello って名前のディレクトリが作成されるのでそこに移動する

各プラットフォームライブラリインストール

Android

Android SDK インストール

brew install ant
brew install android-sdk

インストールされたか確認 実行できたらOK

android -h
adb version

Android コンポーネント追加

cordova platform add android

Android を add しようとしてもできない場合は、 以下のコマンドで Android SDK Manager を起動してエラーメッセージに表示された不足ライブラリをインストールする

android

今回は最新の Android API 一式と Tools/Android SDK Platform-tools, Android SDK Build-tools をインストールした

Android SDK Manager

エミュレータの準備

確認のために自分でエミュレータを作成する必要がある

Android再入門 - エミュレータの作成 - Qiita

高速エミュレータを利用できるように Intel HAXM を導入する

Mavericks の場合は起動しても必ずフリーズしてしまうので以下の hotfix 版をインストールする

Mac OS X 10.9 Mavericks で Intel HAXM を使用した x86 Android Emulator を起動するとシステムがハングする - Xamarin 日本語情報

インストールしたら以下のコマンドで Android Virtual Device Manager を開いて AVD を作成する

android avd

今回の設定項目は以下

Android Vurtual Device Manager.png)

作成したら一覧から選択して「Start」で起動してみる。

しばらく(結構)待って Android のホーム画面が表示されたら成功。

エミュレータ起動

先ほど起動したエミュレータを一回終了して以下のコマンドを実行する

cordova emulate android -d

ビルド後しばらく待ってアプリケーションが起動すれば成功

iOS

シミュレータのインストール

brew install ios-sim

XCode インストールしてない場合は AppStore とかからインストールしておく

iOS コンポーネントの追加

cordova platform add ios

シミュレータの起動

cordova emulate ios -d

これでシミュレータ上で動作確認ができる

tmux を利用している場合

tmux 上だとシミュレータを起動しようとしても session timed out 的なエラーが発生してうまく動かないので追加で設定が必要

reattach-to-user-namespace のインストール

brew install reattach-to-user-namespace

.tmux.conf に以下を追記

set-option -g default-command "reattach-to-user-namespace -l zsh"

tmux のセッションを全て終了して再起動

シミュレータの起動コマンドでちゃんと動作するようになる