[Titanium Mobile] SDKをSourceからBuildしてみる

titanium_build-sdk-from-source-codeAndroidアプリを作成しているときにソースコードを修正しないと解決しない問題に遭遇したので、ソースコードからビルドしてみたときの覚書。

環境: Mac OS X 10.8.4, Titanium SDK 3.1.1.GA

参考にしたのは下記。

SConsというビルドツールを利用するようなのでMacPortsからインストールする。

$ sudo port selfupdate
$ sudo port install scons

2.3.0がインストールされた。

次はAndroid NDK(Native Development Kit)のインストール。下記サイトからダウンロードして適当なディレクトリに解凍する。

環境変数を追加

$ vi ~/.bash_profile

#Android NDK
ANDROID_NDK=/Applications/android-ndk-r8e
export ANDROID_NDK=${ANDROID_NDK}
export PATH=$PATH:${ANDROID_NDK}

$ source ~/.bash_profile

titanium mobileのソースコードをダウンロードする。GitHub for Macを利用すると簡単。

ビルドしてみる。

$ cd /Users/daiki/Documents/GitHub/titanium_mobile/
$ scons android=1 android_sdk=/Applications/android-sdk-macosx/ PRODUCT_VERSION=3.1.2

失敗。。。

ndkのバージョンr8eはいくつかファイルを修正しないとビルドできないらしい。下記記事を参考に3ファイルを修正。

$ scons android=1 android_sdk=/Applications/android-sdk-macosx/ PRODUCT_VERSION=3.1.2

You don't have pyyaml!

またエラー。言われた通りにインストールコマンドを実行してみる。

# sudo easy_install pyyaml

build/temp.macosx-10.8-intel-2.7/check_libyaml.c:2:10: fatal error: 'yaml.h' file not found

libyamlが必要らしい。

$ sudo port install libyaml
$ sudo easy_install pyyaml
$ scons android=1 android_sdk=/Applications/android-sdk-macosx/ PRODUCT_VERSION=3.1.2

完了するとdist/mobilesdk-3.1.2-osx.zipが出来た。

$ unzip dist/mobilesdk-3.1.2-osx.zip dist/

解凍するとmobilesdkとmoduleがある。moduleは変更してないので、mobilesdkだけコピーしてみる。

$ cp -r dist/mobilesdk/osx/3.1.2 ~/Library/Application\ Support/Titaniu
m/mobilesdk/osx/

このSDKを使うように設定ファイルを修正。

$ cd
$ vi .titanium/config.json

tiapp.xmlの「sdk-version」も変更してビルドしてみる。

$ titanium build -p android --log-level debug --target device

これでソースを変更する環境が整った。

 

< Related Posts >