Web系のこととかー。

最近、スマートフォンアプリの開発を始めたzaruです。

Xcodeでのネイティブアプリを開発していたんですが、諸事情によりWebベースで作ることになりました。色々試した結果、Titaniumでやるのが一番良さげ!というわけで、最近リリースされたTitanium Studioで開発を開始しました。
(TitaniumはWebベース…といっても良いのかな?PhoneGapとかは、Webベースと言えるが…)

開発自体は、まぁ良いんですが…いざiPhone実機にインストールをしようとするとエラーになってGoogleさんをさまよう日々。なんとかかんとか転送ができるようになったので、忘れてないようにメモをしておきます。

Titanium Studioプロジェクトの設定

tiapp.xmlの編集(TiApp Editor)

Provisioning ProfilesのAppIDが、例えば「A1B2C3D4E5.zarutofukun」だった場合、自動的に付与された「A1B2C3D4E5」を除いた「zarutofukun」をTitaniumStudioのプロジェクト内にある Application ID に設定する。

僕は、ここでそのまま「A1B2C3D4E5.zarutofukun」を入力してしまい、下記のようなエラーを出してはまってました。

[ERROR] [BEROR]Code Sign error: Provisioning profile 'hogehoge' specifies the Application Identifier 'hogepiyo' which doesn't match the current setting 'A1B2C3D4E5.zarutofukun'
[ERROR]
[ERROR] Error: Traceback (most recent call last):
  File "/Library/Application Support/Titanium/mobilesdk/osx/1.7.2/iphone/builder.py", line 1305, in main
    execute_xcode("iphoneos%s" % iphone_version,args,False)
  File "/Library/Application Support/Titanium/mobilesdk/osx/1.7.2/iphone/builder.py", line 1066, in execute_xcode
    output = run.run(args,False,False,o)
  File "/Library/Application Support/Titanium/mobilesdk/osx/1.7.2/iphone/run.py", line 39, in run
    sys.exit(rc)
SystemExit: 65

Provisioning Profilesの登録

続いて、Provisioning Profilesを登録します。

メニューから「iOS Device」を選択します。(非力なMacだとけっこう時間掛かる…)

ここでUpload Development Provisioning Profileとあるので、Uploadを選択し、iOS Provisioning PortalからダウンロードしたProvisioning Profileを選択する。

これで「Finish」をクリックすればビルド&転送が開始!

Titanium Studioでの実機転送にはiTunesが使われるみたいで、自動的にiTunesが立ち上がりアプリの登録が行われます。Xcodeとは違い一発で転送!というわけにはいかないみたいですね。iPhoneと開発Macが母艦な関係だったら、iTunesで同期すればいいんですが、個人iPhone・会社Macな環境だと困る!というわけで、iTunesを使わずにアプリの転送をします。

アプリをiTunes使わずに転送

XcodeのOrganizerを立ち上げます。

Deviceの中にあるApplicationsを開くと、アプリの登録ができるので、Addをクリックして、先程TitaniumStudioでビルドしたバイナリファイルを追加します。
すると、接続しているiPhoneに自動的に転送が開始されます!

余談:ビルド時のエラー

ビルド・インストールは成功したが、ログに妙なエラーが…。

最初出ていたエラー

2011-08-09 20:29:37.213 osascript[27370:f07] Error loading /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types:  dlopen(/Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types, 262): no suitable image found.  Did find:
     /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: no matching architecture in universal wrapper
osascript: OpenScripting.framework - scripting addition "/Library/ScriptingAdditions/Adobe Unit Types.osax" declares no loadable handlers.
/Library/Application Support/Titanium/mobilesdk/osx/1.7.2/iphone/itunes_sync.scpt: execution error: Can’t make name of 3 into type Unicode text. (-1700)

http://kb2.adobe.com/cps/516/cpsid_51615.html
ここからファイルをダウンロードして差し替えたら、メッセージが変わった。

次のエラー

/Library/Application Support/Titanium/mobilesdk/osx/1.7.2/iphone/itunes_sync.scpt: execution error: Can’t make name of 3 into type Unicode text.

http://developer.appcelerator.com/question/122993/error-while-moving-app-to-ios-device
同じ症状の人が…。

解決方法…

解決方法というか…単純にiTunesをアップデートしたら解決しました…。OSはLionにしたけど、iTunesは放置してたんですよね。会社のMacだし、特に使うことがないので。

まぁ、今後はiTunesもちゃんとアップデートしましょう…と。

§378 · 8月 9, 2011 · プログラミング_Titanium · · [Print]

3 Comments to “Titanium StudioでiPhone実機転送をする方法”

  1. monoqlo より:

    こんな方法もあったんですね。

    自分はデバッグでiPhoneへ転送する際にはXcodeを使っています。
    TitaniumStudioでビルドしたときに生成されるXcodeのプロジェクトを開いて、そこからそのまま直接転送しています。

  2. zaru より:

    なるほど。Xcodeプロジェクトがあれば、普通にXcodeからもいけますね。

  3. [...] 6〜8の参考「Titanium StudioでiPhone実機転送をする方法」 [...]

Leave a Reply