http://d.hatena.ne.jp/kaz_konno/20111124/1322153970:title=という素敵なエントリを読んだのと、来週のTitanium勉強会の資料作成一応終わった段階だったので、試しにJavaScriptでTitanium Module作ろうと思ったらちょっとハマったので、ちょっとメモ
build.py実行すると「ImportError: cannot import name Compiler」と怒られる
以前作りかけていたGoogleReaderクライアントのGoogleAccountの認証部分だけでもモジュールにしておけば、色々使い勝手良くなるかと思ってこれをモジュールにしようと思って作業とりかかりました
上記エントリを参考に
titanium create --type=module --platform=iphone --id=com.twitter.h5y1m141.googleaccount --name=googleaccount
とした後に、assetsフォルダ配下に、com.twitter.h5y1m141.googleaccount.js作ってコードを書く。
その後、build.pyを実行すると
Traceback (most recent call last): File "./build.py", line 193, in <module> compile_js(manifest,config) File "./build.py", line 69, in compile_js from compiler import Compiler ImportError: cannot import name Compiler
というエラーが出て、buildが出来ませんでした。
解決方法
iOS Module Development Guideを見てたら
your Titanium SDK may have been installed under ~/Library instead of /Library. Your titanium.xcconfig file must refer to the correct directory, else the build will fail.
という記述を見つけて、titanium.xcconfigを見たら
TITANIUM_SDK = /Library/Application Support/Titanium/mobilesdk/osx/$(TITANIUM_SDK_VERSION)
となっていました。
自分のTitaniumMobileのSDKは、/ではなく、~/配下にインストールしているため、この部分修正したら無事にbuild出来るようになりました!