Titaniumビルド手順まとめ

id:naoya もすなるという Titanium を試してみようと思ったら色々とはまったのでまとめておきます。少なくとも僕の環境ではiOS 4.1以上の SDK を利用していると Titanium のダウンロードだけではダメで、自分での build が必要です。というわけで以下ではビルド方法から解説します。

今回は iPhoneAndroid を同時に開発するのが目的なので Mac の人だけが対象です Windows のひとはさようなら。

追記

id:maxy さんからコメントで
http://builds.appcelerator.com.s3.amazonaws.com/index.html
からダウンロード出来るのを教えてもらいました!コミット毎?でビルドされてて便利!

必要環境

  • OSX Snow Leopard
  • X code with iOS SDK 4.1 (4.2 beta2 ではうまく動きませんでした)
  • Macports のインストール (homebrew とかでも大丈夫だとは思いますが)

セットアップ

Titanium の セットアップ前に Xcode のインストールは済ませておきましょう。開発者向けに4.2 Beta が手に入りますが、試したところ駄目だったので 4.1 がおすすめです。

続いて、Android SDK をセットアップします。

http://developer.android.com/sdk/index.html

から、最新の OSX 向け SDK をダンロードします。その後、適当な所に解凍します。それから、コマンドライン

 sudo ln -s /Path/TO/Your/Android-SDK /opt/android-sdk

という感じでシンボリックリンクを貼っておきます。ビルドするときに必須です。

つぎに、コマンドラインから、次のコマンドを打って管理ツールを起動します。

 /Path/TO/Your/Android-SDK/tools/android

左ペインの "Avairable Package" をクリックして、その後右ペインのリストにある、三角形をクリックしてこんなリストを出します。

この画面はセットアップが終わってる状態なので、出てないのですが

が選択できるので、選択した上で "Install Selected" をクリックしてSDKをインストールしましょう。

これで、Android SDK のセットアップは終了です。

Titaniumの独自ビルド

Titanium を
http://developer.appcelerator.com/get_started
からダウンロードしてインストールするだけで、もう使えるはずなのですが、僕の環境(iOS SDK 4.1)ではうまく動かなくて、Titanium Mobile を自分でビルドする必要がありました。

というわけで、git でソースを取ってきます。

  cd ~/src
  git clone http://github.com/appcelerator/titanium_mobile.git

で展開した、ディレクトリに入って、

  scons

します。

scons がないときは

この、scons がクセモノで、pythonで書かれたmakeのようなものなのですが port でのインストールがよくこけます。依存しているdb46がよくこけます。
もしコケたときは

  sudo port clean --all -f db46
  sudo port selfupdate
  sudo port install scons

などするとうまくいきます。

これで scons が無事動けば、

  ~/src/titanium_mobile/dist

に、mobilesdk-1.5.0-osx.zip が生成されています。これを解凍して、中に含まれるmobilesdk/osx/1.5.0 を

  /Library/Application Support/Titanium/mobilesdk/osx

にコピーすれば終了です。Titanium のプロジェクトの設定で、この新しい sdk を選択できるようになります。

これで、Titanium での開発が楽しめるはず!

http://github.com/appcelerator/KitchenSink.git
から、KitchenSinkプロジェクトをダウンロードして、Titaniumでビルドすると、使えるUIのショーケースが動かせます。個人的には、
'BaseUI' > 'Views' > 'TableView'
に pull to refresh という最近流行りのテーブルを引っ張って内容を更新するUIが入っていたのがとても印象的でした。

JSでサクッと書いて、まずはモックを作ってみるという用途にも使えそうです。この週末にでもなにかつくってみようかな。