Titanium Studioでの実機転送が失敗する原因としてApple Developer ConnectionアカウントのプロフィールでFirst Name、Last Nameに日本語の名前を設定してしまったために起こるものがあります。
そして、このプロフィール名はApple IDの設定では変えられないのです。orz
そのままプロビジョニングプロファイルを作るとキーに日本語が含まれるものができてしまい、Titaniumのビルドスクリプトが変換に失敗して落ちてしまいます。
[INFO] One moment, building ... Traceback (most recent call last): File "/Users/iwazawa/Library/Application Support/Titanium/mobilesdk/osx/2.1.1.GA/iphone/builder.py", line 1604, inmain(sys.argv) File "/Users/iwazawa/Library/Application Support/Titanium/mobilesdk/osx/2.1.1.GA/iphone/builder.py", line 724, in main dist_name = dequote(args[7].decode("utf-8")) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0x89 in position 0: invalid start byte
回避方法を調べようとネットで検索をかけるとDeveloper Centerのサポートに名前を変更してもらうというのしか出てこないのですが、Xcodeでは別に日本語だって問題ないわけですしRubyMotionも適切にエンコードした文字列を指定しておけば大丈夫。なのでTitaniumのビルドスクリプトが対応していないだけだと思います。
落ちている箇所のソースコードを見てみると
vi ~/Library/Application\ Support/Titanium/mobilesdk/osx/2.1.1.GA/iphone/builder.py 723 : 724 dist_name = dequote(args[7].decode("utf-8")) 725 :
ちゃんとUTF-8でデコードしてるのにおかしいな?と調べてみたところ、引数としてShift_JISが渡ってきてました。
パラメータとして渡す元を変えるのが正しい修正方法の気がしますが、とりあえずすぐにビルドしたかったので
722 : 723 args[7] = args[7].decode("shift_jis").encode("utf-8") # <---コレ 724 dist_name = dequote(args[7].decode("utf-8")) 725 :
直前にこんな風な変換を追加してやると、無事成功しましたヽ(´ー`)ノ