TARGET_BUILD_DIR によるビルドエラーを強引に直してみた

TARGET_BUILD_DIR によるビルドエラー

Xcode4でTitanium 1.7.2の開発環境を作っていたらこんなビルドエラーがでてきた・・・

[ERROR] Your TARGET_BUILD_DIR is incorrectly set. Most likely you have configured in Xcode a customized build location. Titanium does not currently support this configuration.
[ERROR] Expected dir /Users/relax4u/Sources/KitchenSink/build/iphone/build/Debug-iphonesimulator, was: /users/relax4u/Sources/KitchenSink/build/iphone/build/Debug-iphonesimulator
[ERROR] Error: Traceback (most recent call last):
File "/Library/Application Support/Titanium/mobilesdk/osx/1.7.2/iphone/builder.py", line 1148, in main
execute_xcode("iphonesimulator%s" % link_version,["GCC_PREPROCESSOR_DEFINITIONS=__LOG__ID__=%s DEPLOYTYPE=development TI_DEVELOPMENT=1 DEBUG=1 TI_VERSION=%s %s" % (log_id,sdk_version,debugstr)],False)
File "/Library/Application Support/Titanium/mobilesdk/osx/1.7.2/iphone/builder.py", line 1088, in execute_xcode
sys.exit(1)
SystemExit: 1

TARGET_BUILD_DIR 系のビルドエラーで困っている方は結構いるようで、色々して調べて試してみたけどうまくいかない。
そもそも私のXcode力が足りないせいで、対応がうまくいっているのかもわからない状態だった。

builder.py の修正

行き詰っていても仕方がないので builder.py を修正して対応した。
/Library/Application Support/Titanium/mobilesdk/osx/1.7.2/iphone/builder.py を開いて 1083行目付近のコードを修正した。

  • 修正前
if target_build_dir!=build_dir :
  • 修正後
if target_build_dir.lower() != build_dir.lower() :


ビルドエラーの内容をみると、パスの不一致(Usersとusersの違い)で失敗しているようだったので、パスのチェックをしているロジックでパスを小文字に変換してチェックするように修正した。

[ERROR] Expected dir /Users/relax4u/Sources/KitchenSink/build/iphone/build/Debug-iphonesimulator, was: /users/relax4u/Sources/KitchenSink/build/iphone/build/Debug-iphonesimulator

こんな対応方法じゃなくてもっとまともな対応方法があるんだろうなぁ・・・