iPod Touch その3

円高だしの殺し文句で私の中の人を説得して、年間$99の iPhone Developer Programを購入。有料のアプリで儲けようなんて思っちゃいない。ただ自分で作ったものを動かしたいだけなのさ。
さてここから認証とかいろいろトラブるんだろうな…と思っていたが、あっさりサンプルコードをビルドして転送して実機で動かすところまで成功した。詳しい手順はNDAだったような気がするので、ちょっとつまずきかけた点だけ書いてみますね。

Activation Code

iPhone Developer Programを購入するのは簡単。iPhone Dev Centerにログインして、ポチっとするとAppleStoreに飛ばされてカートに入っている。で再度ポチっとする。ただし、これだけではProgram Portalにはアクセスできない。向こうからActivation Codeをメールで送ってくるまでちょっと待つ。私の場合1/11に注文して来たのは1/13だけれど、休日の間は仕事してないと見た。
で、方々で言われているようにActivationはちょっと曲者で、AppleIDに登録してある名前が日本語だと、メールにあるリンクをクリックするだけじゃActivationできない。でもエラーメッセージにContact Usのリンクがあるんで、Contact UsのフォームにActivationできないぜコラという趣旨の英文を書いて送ってみた。日本語でいいらしいんだけど、このフォームをいまいち信用していなかったので。そしたらすぐ返事が来て、AppleStoreの買い物履歴から連絡先とか注文番号をコピペして送れやとのこと。で送ったらこれもすぐ、修正しといたぜボーイってメールが来る。これでActivationできる。

Devices

開発に使用するiPhoneiPod Touchを登録するのだけど、フォームは英数字しか受け付けないので、iPod Touchの名前も英数字のみにしておく。なんか「'」とか記号も駄目みたい。

App IDs

Program Portalには丁寧なHow Toがあって、各ステップごとにHow Toを読んで確認しながらやっていけば簡単に進むことができる。App IDsは自由に入力するものなんだけど、MacのBundle Identifierをよく知らない人はどういう風に命名すればいいのか分からないかもしれない。Bundle Identifierはドメイン名を逆さにした構造をとっていて、「com.apple.iTunes」とかそんな感じ。上の階層ほど前に来る。で、ここで登録するApp IDはキーチェーンへのアクセス権のためのものらしくって、キーチェーンを使わなかったり共有する場合は(サンプルコードをとりあえずビルドする場合もそうかな)一つしか作らなくてもいい。ただし、Bundle Identifierはアプリケーションに一意でなければならない。で、複数のBundle Identifierで同じApp IDを共有するために「*」ワイルドカードの出番。
例えば私が作るアプリケーションはMacの場合は「jp.natori.Thousand」「jp.natori.Oreyon」とかいう風に付けてるんだけど、「jp.natori」の部分は同じ。だから、App IDには「jp.natori.*」と指定する。それだけ。
jp.natoriなんて勝手に名乗っていいのかは知らない。

Build & Go

ビルドして転送して実行するためには、プロジェクトかターゲットのビルド設定で「コード署名ID」を設定しなければならない。ここHow Toでは2カ所設定することになってるけど、1カ所しか見当たらない。でもそれでOK。
(特にサンプルコードの場合)気をつけるべきは、ターゲットのプロパティでBundle Identifierも設定すること。デフォルトでは「com.yourcompany.${PRODUCT_NAME:identifier}」になっているけど、App IDで設定したものにマッチするようにしなければならない。App IDで「jp.natori.*」としているなら、「jp.natori.${PRODUCT_NAME:identifier}」とか、「jp.natori.hoge」とか。

そんなわけで意外と簡単に出来ます。英語は全然読めませんって人は諦めた方がいいけど。

動かしたいのはThousandやOreyonみたいなものではなく完全に俺様用のアプリです。