Hatena::ブログ(Diary)

c/fe

2008-09-11

iPhone実機に自作プログラムを転送するまでの手順

各所に書かれているとおりにすごく面倒くさかった。

多分某K氏に後で説明することになると思うので、忘れないうちにメモ

IDPはややっこしいが、基本的には各セクションのHowtoタブの通りにやればできる。

適切な値がよくわからんかったので適当な値をかいてある所もあるが、ご愛敬

まあ、とにかく実機に転送ができたということで。

全体の流れ

  1. iPhone Developer Centerに登録する
  2. iPhone Developer Programに加入する(有料)
  3. ローカルで証明書を作り、登録する
  4. IDPで色々登録し、証明書を二枚ゲットし、インストールする
  5. Deviceを登録する
  6. AppIDを登録する
  7. Provisioning Profilesをゲットし、インストールする
  8. XcodeのオーガナイザにてiPhoneにProvisioning Profilesをインストールし、レストアする
  9. Xcodeのプロジェクト設定を色々設定する
  10. アプリをビルドする

難関は最初のIDPに加入と、IDPの色々な登録作業、プロジェクト設定をするところ。ってほとんどじゃん!

iPhone dev Centerに参加する

http://developer.apple.com/iphone/index.action

AppleIDを取得して、SDKをDlしたり、インストールしたり。

上のURLにログインして入れる所までやる。

ここは難しい所は特になかった。


iPhone Developer Programに加入する

http://developer.apple.com/jp/iphone/program/

ここから購入する、10800円。

Apple Store経由で支払いなどを行うと、ちょっとするとメールでアクティベーションコードが届く。

ここで第一の難関。どうやらAppleIDに2バイト文字が含まれているとアクティベーションミスることがある。

We are unable to activate your iPhone Developer Program membership because we are unable to successfully verify your identity. Please contact us and reference Enrollment ID# NQ6K945E** for further assistance.

などと出力されてアクティベーションができないのだ。

素直にコンタクトセンターから「アクティベーションできねーんだけど?」と質問を送ると、半日くらいで「色々直したからリトライしてみて」と返事がくる。

ここが英語なので英語で質問しなきゃいけないのかとおもったが、日本語レスポンスがかえってきたので、リージョンを適切に選べば日本のサポートセンターにつながるみたい。


リトライすると特に「成功しました!」とかでることもなく、iPhoneDevCenterの画面が表示される。

しばらくリロードしたりしていると、IDCトップの右上にIPHONE Developer Program とかでて、Program Portalへのリンクが表示される。

これが表示されればIDP加入は成功した。


ローカルで証明書を作成する

「Keychain Access.app」を起動する。

メニューの「キーチェーンアクセス」>「証明書アシスタント」>「認証局に証明を要求」を選択。

ウィザードが始まるので、メールアドレスにAppleIDに登録されているメールアドレスと、コモンネームはAppleIDに登録されている名前を英語入力する。この時入れるべき英語の名前はIDCトップの「Welcome, HOGE HAGE」をみて、HOGE HAGEと入力する。

CAのメールアドレスは空欄で、要求の処理を「ディスクに保存」とし、「鍵ペア情報を指定」にチェックしておく。

「続ける」を押すとどこに保存されるか聞かれるので適当に答え、すすんだ次の画面で、鍵のサイズは2048、アルゴリズムはRSAを指定する。

「続ける」を押すと鍵の生成が行われ、鍵が保存される。


IDPで色々登録し、証明書を二枚ゲットし、インストールする

http://developer.apple.com/iphone/manage/overview/index.action

IDPトップに移動し、左側メニューのCertificateを選択する。

Developmentタブで、「Add Certificate」を押す。画面が切り替わり、一番左下のボタンをおして、先ほど生成した証明書を選択する。

選択したらSubmitする。


SubmitされるとDevelopmentタブにおいて表に先ほど追加した証明書が表示され、右側に「approval」というボタンがでるので、これをクリックする。

数分くらいまってリロードすると、処理が完了し、「Download」というボタンが表示される。クリックして生成された証明書を保存する。

同時に、Developmentタブ中央くらいに表示されているテキストの「WWDR Intermediate Certificate.」リンクを右クリックして保存する。


DLした証明書をダブルクリックすると、Keychain Accessが起動して、このキーをインストールするかと聞かれるので、プルダウンでシステムを選択してインストールする。これをDLした二つの証明書に行う。


Deviceを登録する

左側メニューのDeviceを選択する。

右上の「Add Device」をクリックすると、二つのフォームが表示される。

左側は適当でよいらしい、「my iPhone」とかいれておく。

右側はiPhoneをつないだ状態でXcodeを起動し、メニューの「ウインドウ」>「オーガナイザ」でオーガナイザをひらき、DEVICEの中にある自分のiPhoneを選択して「Identifer」の横にある40文字のテキストをコピペする。

「Submit」をおし、表に入力した内容が追加されたことを確認する。

AppIDを登録する

ここは正直よくわからんかった。

左側のフォームには「test」とかいれて、右側には「*」と入力した。

「submit」すると表に追加される。


Provisioning Profilesをゲットし、インストールする

左側の「Provisioning」をえらび、「Add Profileボタンクリックする。

ProfileNameには適当に「Develop」とか入れとく。

Certificateは先ほど送信した証明書のCommonName(というか名前)が表示されているので、チェックする。

AppIDは先ほど設定したtestをえらんでおく。

Devicesは先ほど設定した「my iPhone」をチェックする。

「Submit」すると表に追加される。

(たしかここは処理に時間がかかった、Certificateの登録のときと同様にする)

「Download」のボタンクリックして、Profile設定ファイルDLする。


Xcodeを起動し、前述の方法でオーガナイザをひらき、DEVICEから自分のiPhoneをえらんで「Provisioning」の下の「+」をおし、先ほどDlしたProfile設定ファイルを選択する。


ここでHowtoにはiPhoneをオーガナイザからレストアしろと指示があるが、レストアするとiPhoneの設定が全部ふっとぶので、メモっておいたほうがよい。つか、カメラロール(デジカメ)も全部ふっとぶので是非保存してからのほうがいい…おれはとばしてしまった…(泣)

もしくはやらなくてもうごくのかもね、おれはやっちゃったけどさ…。


Xcodeのプロジェクト設定を色々設定する

ここが結構ややこしい。

自作アプリでもIDCのサンプルアプリでもいいのでXcodeでひらき、メニューの「プロジェクト」>「プロジェクト設定」をひらく。

コード署名ID」>「Any iPhone OS Device」の右側をダブルクリックして

iPhone Developer: HOGE HAGE

入力する。

各所で説明されているが、iPhone Developer: のコロンの後には半角スペースが必須。


ここまでの作業が正しくいけば、

コード署名プロビジョニングプロファイル」>「Any iPhone OS Device」右側のプルダウンに先ほど作成したProvisioning Profileの名前である「Develop」が表示されている筈。

それを選択する。

これがでなかったら…がんばるしかない。


アプリをビルドする

Xcodeの左上のプルダウンで、「Device | Debug」を選択し、「ビルドして進行」をクリックする。

多分Keychainが開いてパスワードを求められるので、普段使ってるパスワードを入力する。

しばらくするとめでたくiPhoneでアプリが起動するはずである、お疲れ様でした!

俺もこんな長文かいて疲れた!!!



おまけ、エラーコードについて

0xE800003A

というエラーがでることがある、これは証明書が正しくインストールされていない可能性が高い、ちゃんとサインできていないみたい。

多分コード署名プロビジョニングプロファイルの設定ができていないだろう。

HyperDogHyperDog 2008/10/04 16:02 はじめまして。
もとまかさんのところからナビって来ました。私も登録をしようとして購入までは行ったのですが、アクティベーションコードのメールが来ません(これは問い合わせ中ですが)、それと、アクティベーションコードは、どこにどう設定するのでしょうか。
教えていただければ幸いです。

uzullauzulla 2008/10/05 23:40 アクティベーションコードを入れる所自体はないとおもいます。
メール記載のアクティベーションコードがパラメタに含まれたURLを踏めばOKと思います。

メールが届いて、アクティベーションURLを開けるようになった後の話になりますが、どうしてもアクティベーションが完了しない私の知り合いが、本国のAppleに問い合わせた所、私の頃とは違い、どうやらローカライゼーションをやっているらしく(私の時はDBの値を強制的に書き換えてやっていた)まだ完成していないらしいです。その為に今は処理までにかなりの遅延があるらしいです。

HyperDogHyperDog 2008/10/06 00:29 ご回答有り難うございます。
確かに、メール自体がまだ来ません。
いつになったら来るのかなあ?

kouichikouichi 2008/10/07 22:57 参考になりました。
ただ、organizer のところで restore はしなくても良いようです。
無事、UICatalog が実機で動作しました。
設定の画面にプロファイラの項目が追加されるんですね。

HyperDogHyperDog 2008/10/08 13:53 uzullaさん、こんにちは。
その後メールが届き、アクティベーションをして、その後もこちらを参照しながら、無事実機でサンプルコードが動きました。
大変感謝しております。有り難うございました。

TenjinTenjin 2008/10/25 14:39 uzullaさん、はじめまして。
こちらのページを参考にさせて頂き。無事自分の iPhone で Hello world.動きました!
とても助かりました。有り難うございます!!

てらてら 2008/10/26 23:22 ありがとうございました。

ググってこちらへ飛んできましたが、こちらの書き込みでなんとか実機で動作させる事ができました。
正直、こちらが無ければ1ヶ月後でも動作させれたかどうか…もう、本当に感謝の気持ちで一杯です。

私の場合、入会するまでに文字化けしており、さらに質問メールまで文字化けで大変でした。
ちなみに10月23日の段階でアクティベーションコードは弾かれて、結局アジアサポートに手動で準備してもらいました。
自分だけなのか?と、少し思ったりしておりましたが、今時2バイトコードに蹴られるなんて…

今後もこちらをチェックさせて頂きます。

samosamo 2009/01/22 16:19 はじめまして。グーグルでキーワード「iPhone実機の登録」でヒットしました、
こちらのページを参考にさせて頂きました。
サンプルプログラムの「Hello world」を、無事、iPod touch実機へ転送でき、
動かす事ができました。
本当に助かりました。有り難うございました。m(_._)m

natsumiminatsumimi 2009/02/01 19:36 こちらのおかげで思ったよりスムーズに実機で動かすことができました。ありがとうございます。

io_oio_o 2009/03/21 08:34 画像があったので、大変役立ちました。

有難うございます。

rr 2009/06/15 20:59 アプリをビルドがどうしてもできなく、こちらへたどりつきました。
エラーは次の通りです。
Code Sign error: a valid provisioning profile matching the application's Identifier 'com.×××.HelloWorld' could not be found
何が考えられるでしょうか?

uzullauzulla 2009/06/22 23:40 > rさん
ググったら解決してたみたいですね、よかったですね。