TitaniumでiPhoneへの実機転送時にはまった件のまとめ

iPhoneアプリをTitaniumで作ろうと思い、期限が切れていたiOS Developer Programを更新しました。
アプリを実機に転送して動作確認するために、プロビジョニングプロファイルを作成する必要が
あるのですが、うっかり以前作成した際に使った秘密鍵のバックアップ取らずにPCを新調して
しまっていました。

Xcodeで転送するまで

最初に作った秘密鍵がインストールされていないPCでアプリを実機に転送しようとすると以下の
ようなエラーが出てうまくいきません。

xcode could not find a valid private-key certificate pair for this profile in your keychain

そのため以下のサイトを参考に証明書の作り直しをしました。


が、まだエラーが・・・


あまり手順を把握していない状態でいろいろいじってしまったので、一度整理しようと思い
以下のAppleのサイトを参考にキーチェーンから不要な証明書を削除したり、Xcode
オーガナイザに登録されていた古いプロビジョニングプロファイルを削除するなどして綺麗な
状態にしました。


一度綺麗な状態にしてから最初に書いたURLの手順でプロビジョニングプロファイルを作成したところ、
無事Xcodeからの実機転送は出来ました。

Titaniumからの転送

ただ、まだTitanium Studio(1.0.7)から実機への転送が出来ません。
具体的にはTitaniumのプロジェクトで右クリックし「Install to iOS Device」を選択した際に
表示されるウインドウで、プロビジョニングプロファイルを「Upload」しても無反応で「Finish」の
ボタンがグレーのままでクリック出来ない状態でした。


調べたところ、Titanium BBSで同じ現象にはまってる人がいました。


どうもプロビジョニングプロファイルを置いているパスに日本語が入っているとダメなようで、
自分の場合はプロビジョニングプロファイルを置いているフォルダ名が日本語になっていました... orz

UnicodeDecodeError

フォルダを英語に修正して、ようやく「Finish」ボタンが押せる状態になりました。
これでやっと実機転送出来る!と思ったのもつかの間、今度はビルド時のコンソールで
以下のようなエラーが。。。

UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 0: invalid start byte

このへんで既に深夜3時くらいになっていたので心が折れそうでしたがこれもTitanium BBSで
同じ現象にはまってる人がいました。


うーん、どうやらプロビジョニングプロファイルを作るために必要な証明書に日本語が含まれているのが
原因のようです。

神サポート

確かに、以前からDeveloper Centerの「Personal Profile」の一部が日本語になって文字化けした
状態になってました。
最初の登録時にも日本語になってしまい、サポートに問い合わせして直してもらったのですが、
Apple IDと連動しているせいか何かのタイミングで更新してしまったようです。

しかもこの項目はDeveloper Centerからは変更出来ないため、仕方なくサポートに
問い合わせしてみることにしました。

このページの「Managing Your Account」のフォームに
例えば「山田 太郎」を英語で具体的に「Tarou Yamada」のように直してほしいと具体的に
指定したところ、翌朝には「日本語で書かれた内容が落ちててよくわからないけど、多分名前を変更して
欲しいだよね?修正しといたよ!違ってたら問い合わせ内容をPDFか画象にして送ってね」
といった旨のメールが返ってきました。


問い合わせの際に「Your Region」で「Japan」を選択していたので日本語で問い合わせを
送ったのですが、どうやら日本語で書いた部分が化けていたようです。


おそらくよくある問い合わせだったのと具体的に修正箇所を記述していたので気をきかせて
対応してくれたのだと思います。


早速証明書を新たに作るところからやり直してみると、無事転送成功!
(∩´∀`)∩ワーイ


Appleのサポートは年末なので対応に時間かかるだろうと覚悟してたのですが、早くて助かりました。


iPhoneへの実機転送は手順がやや複雑な事、秘密鍵を紛失した事、上記のようなTitaniumでの
日本語まわりの問題などが重なってかなり時間を使ってしまいました(´・ω・`)


ただ今回記事にまとめたことで今後は同様の事は繰り返さないと思います!
これで落ち着いて年が越せます・・・


良いお年を(^_^)/~