一个骗子黑客

Lie付 Hacker.jp

Titanium mobile SDK 1.8.0.1でSystemExit:65が出るとき

Titanium SDKを1.8.0.1にした時だけ、下記のようなエラーがでてビルドできなくなった時の対処方法。
nightly buildのSDKを使ったら問題ないのに、1.8.0.1の正式リリース版だけ出てた

[ERROR]
[ERROR] Error: Traceback (most recent call last):
File "/Library/Application Support/Titanium/mobilesdk/osx/1.7.0/iphone/builder.py", line 1306, in main
execute_xcode("iphoneos%s" % iphone_version,args,False)
File "/Library/Application Support/Titanium/mobilesdk/osx/1.7.0/iphone/builder.py", line 1066, in execute_xcode
output = run.run(args,False,False,o)
File "/Library/Application Support/Titanium/mobilesdk/osx/1.7.0/iphone/run.py", line 39, in run
sys.exit(rc)
SystemExit: 65

みたいなエラーが出る時。
フォーラムだとこんなのも出てた。
http://developer.appcelerator.com/question/129878/get-an-error-when-compiling-under-1801

とりあえずフォーラム129878みたいにui/ui.jsを使っていたので、リネームしてみてもダメだった。
SystemExit: 65が出るのは、色んな原因が有るみたい。

変なのは、空っぽの新規プロジェクトを作って、Resource以下に問題のプロジェクトのコードを置いただけでも同じエラーがでること、app.jsではincludeもrequireもしてないのに。

ビルドパスに問題のあるファイルが一つでもいるとダメみたいなので、ファイル毎にチェックしていった。
結果わかったのは 複数行コメント / * 〜 */のなかでTi.APPとかTi.Blob、Ti.APIみたいな文字列があるとダメみたいだということ。

Titaniumはビルド時に大きなJSファイル分割を行うみたいなんだけど、この時
/^Ti\./
みたいなところで分割してるみたい。それが複数行コメントにたまたま要るとダメみたい。
なんか変な感じがするけど、とりあえずこれでビルドは通った。SDK1.8.0.1の正式版にだけ出てるので、単純にこのバージョンのバグなのかな。