最近、スマートフォンアプリの開発を始めた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もちゃんとアップデートしましょう…と。
こんな方法もあったんですね。
自分はデバッグでiPhoneへ転送する際にはXcodeを使っています。
TitaniumStudioでビルドしたときに生成されるXcodeのプロジェクトを開いて、そこからそのまま直接転送しています。
なるほど。Xcodeプロジェクトがあれば、普通にXcodeからもいけますね。
[...] 6〜8の参考「Titanium StudioでiPhone実機転送をする方法」 [...]