あったらしくるえるはてなくしょん

id:kskmeuk あったらしく

iPhone に アプリをインストールできるまで。

忘れてたけど、今年は本気出すし、エンジニアの末席にはいるべきなんだ。はてなでくるってるダイアリーかくような人はね。足りない事を認めるのは重要だけど、卑下する必要もないよね。とりあえず、iPhone Developer に加入したりした顛末。

iPhone Developer Center に登録

このとき、どうも既存のApple ID ではなくて、新規でアルファベットだけの名前を登録しておいたほうがよいみたいですね。名前が化ける...orz とりあえず大丈夫だった。。

iPhone Developer Program の購入

そのせいか、わからないんだけど、購入まで無事に行けて、iPhone Dev Center から、プログラムの購入 10,800円 まではいいんだけど、Apple から送られたアクティベーションが通らない...。 Contact Us*1 ってあったんだけど、めんどいので、こっちの call usから、電話してアクティベーションの登録はしてもらった。

ここまで登録すると、iPhone Dev Center のメニューが増えるのですね...。

増えたメニューのなかで、明らかに足りないアイテムが、Certificates , Devices , App IDs, Provisioning が足りない...。

順番に解決します。中においてある、View Video が参考になりました。

Certificates

自分のMac で、Keychain Access を開いて、「証明書アシスタント」から、「認証局に証明を要求」を選んで、GUIの初期設定にしたがって、ファイルを出力。
ファイル名は、"CertificateSigningRequest.certSigningRequest" で、これはそのまま。 これを、iPhone Dev Center の Certificates で登録。登録して、承認依頼をすすめると、その都度メールがきて、証明書をダウンロードできるようになります。

この画面で、ふたつの証明書をダウンロードして取得。
ひとつは自分であげた証明書から出来た、ダウンロードっていうボタンでおとせる方、もうひとつは、"*If you do not have the WWDR intermediate certificate installed, click here to download now." のリンクから拾える証明書。 これらは貰って来たら、Mac にインストールする必要があります。

Devices

ここは、シンプルです。 iTunes でシリアル番号のところをクリックすると、識別子(UDID) が表示されます。その状態でコピペすると d8ec****** みたいな長いIDが出れば、それが iPhone の端末識別IDなので、それを Devices に追加。名前は適当でいいみたい。ここ年間に100個までしか登録できないみたいなので、あまり間違えるとちょっともったいないです。

App IDs


ここで、アプリの名前を付ける。アプリの名前とドメインをひっくり返したような Java のパッケージみたいな名前がつく。Descripition のはじめは Apple からごちゃごちゃっとした文字列がくっつきます。これがまた、Xcode の ターゲット設定で必要なところです。

Provisioning

どの証明書で、どのアプリを、どの デバイスに入れるかをセットで管理するためのファイルがこれなのです。このファイルは iPhone の方にいれておく必要があります。ブラウザの設定で、それぞれ組み合わせを聞かれるので適宜設定しましょう。

これらの設定が出来ると、iPhone でアプリが動きます。各証明書は Mac 側に、Provisioning のファイルは iPhone にインストールされたか、もういちど確認しましょう。これらの設定なんですけど、Xcode の オーガナイザでもいいんですけど、iPhone 構成ユーティリティ という Apple で提供されているアプリがちょっとの設定のときには便利なのでいれておくのもいいと思います。

Xcode での 設定

プロジェクトの情報を見るから、ビルドのDebug 構成のコード署名ID を修正します。このなかの「コード署名ID」 と Any iPhone OS Device のところで、さっき作った Application Identifiers を洗濯します。とりあえず、Automatic Profile Selector の Developer でやってみました。この当たりはきちんと証明書がインストールされていると表示が出ますし、なんか変だとグレーアウトします。Devlop が自分用、Distribution が配布用ですね。

こんなかんじ。

ちょっと、Apple ID を登録するときに漢字で登録してて、恥ずかしいので消しました。ちなみにおいらは、上記で書いてるある通り Keisuke Hashimoto といいます。よろしく。

次にプロジェクトのビルドターゲットをいじります。

Bundle identifier と、Bundle name を App IDs のところで設定した物に揃えましょう。
Bundle identifier については アプリのランダムな文字列はいらないです。

これで、

iPhone SDK アプリケーション開発ガイド

iPhone SDK アプリケーション開発ガイド

こちらの本に掲載されていた Sample アプリケーションが、iPhone でも動きます。Xcode で Device 指定して Build したら、勝手に入った!!w これは結構うれしい。実機で動くとうれしいですね。

とりえあず、実機で動かせるところまでいって良かったです。 iPhone Developer Program とかちょっと高いので、がんばって元をとろうと思います。

ついで Ad_Hoc や Distribution ビルドも出来た!!

Ad_Hoc ビルドをする時は、今度は Entitlements.plist を自分で作ってプロジェクトに放り込まないとダメなんだね...。 さらに、作成した Entitlements.plist のなかの、get-task-allow を外す必要があるのね。 iPhone Dev Center の Distribution のタブのところをよく読んだら、書いてあった。自分の Develop のときだと気にしなくていいんだけど、Distribution するときは要チェックでした...。 Apple さまの用意してくれたドキュメントはちゃんと読め!! って話ですね...。

なんかおかしな時は以下が原因でした

- 証明書のkeyファイルがMac にインストールされていない
- provisioning ファイルが iPhone にちゃんとインストールされていない
- Entitlements.plist がされていない

とりあえず、動かせるとなると、気分もはずみますね。