カテゴリー別アーカイブ: iPhone/iPadアプリ

iPhone/iPadアプリのadhoc 配布(配信)まとめ

iPhoneアプリを知り合いに試してもらうために、adhoc配信について試してみたので、メモ。

(1)Device ID(識別子 UUID)の追加
iOS Provisioning Portal -> Devices -> Add Device で、配布先のDevice ID(識別子 UUID)を登録。
Device ID(識別子 UUID) は、配布先の端末をiTunesに接続して、確認可能。
iTunesに接続して、概要タブで見る限りは、識別子(UUID)が表示されていませんが、シリアル番号が表示されているところをクリックすると、表示が変わります。

(2)Profileの追加
iOS Provisioning Portal -> Provisioning -> Distribution -> New Profile で、Profileを追加
この時に(1)で追加したDeviceを選択

(3)Profileをダウンロード
開発環境のPC上で、Profileをダウンロードし、Finderからダブルクリックすると、オーガナイザが自動起動し登録される。
しかし、「A valid signing identity matching this profile could not be found in your keychain」というエラーになっている。

(4)Distribution用のCertificatesを追加
iOS Provisioning Portal→Certificates→DistributionからDistribution用の自分の証明書をダウンロード。
ダブルクリックしてキーチェーンに追加。
これで、(3)のエラーが消えます。

(5)plistの追加
XCode上のプロジェクトを右クリックし、新規ファイル追加→Code Sigining→Entitlements→次へ→dist.plistとして追加。
追加したdist.plistの”「get-task-allow」のチェックを外す。”という記載が他サイトの説明にあるが、どこをどうすればよいかわからかった。
調べると、iOS SDK 4からは、get-task-allowの定義が新規作成時に追加されなくなったらしい。
dist.plistの編集画面で、右クリックAdd Rowで行を追加し、get-task-allow という名前に変更する。(チェックをはずしたまま) 
参考サイト:http://for-our-happy-life.blogspot.com/2010/07/sdk4entitlementsplist.html

(6)構成の追加
XCode上のプロジェクトを右クリックし、情報を見る→構成で、Releaseを複製して、AdHocDistributionを追加。(名前はたぶんなんでもよい)

(7)plistの設定
「アクティブなターゲットを編集し、Code Signing Entitlements に dist.plist と入れる」とある 参考:http://www.sukechan.net/archives/185/
この段階では、コード署名権限には、dist.plistがすでに設定されていた。

(8)プロビジョニングプロファイルの選択
プロジェクトのターゲット→(プロジェクト名)を選択し右クリック、情報を見る。
コード署名 ID > Any iPhone OS Device でそのプロビジョニングプロファイルを選択する。
→(4)を忘れていると、adhoc用のプロビジョニングプロファイルが選択できない!
エラーが無い状態であれば、選択できるようになっているはず。

(9)ビルド
Device – x.x | AdHoc Distribution | (プロジェクト名)を選択し、ビルトと実行
「実行可能ファイルの起動エラー」と出るがファイルはできている。(Deviceではなく、Simulatorで作成すると、実機にインストールできなかったので注意)
Finderから、プロジェクトのフォルダを開き、build→AdHocDistribution-iphoneosの中にアプリのファイルを取り出す。(*.dSYMは必要ないらしい。)

「codesignは、キーチェーンに含まれるキー”“を使用して署名しようとしています。」と聞かれる。よくわからんが、「許可」。2回聞かれる。

(10)配布先へ送る
(3)でダウンロードしたxxxxxxx.mobileprovisionと(9)で取り出したアプリのファイルを圧縮して、配布先へメールなどで送る。

(11)配布先端末へのインストール
(10)で圧縮したファイルを解凍すると、xxxxxx.appディレクトリと、xxxxxxx.mobileprovisionがある。(Windowsで解凍した場合)
xxxxxx.appディレクトリと、xxxxxxx.mobileprovisionをiTunesのデバイスの所にドラッグ。
mobileprovisionをドラッグしたときに、「”xxxxxx.mobileprovision”はこのiPhoneで再生できないため、xxxxxxにコピー出来ませんでした。」と表示されるが、ちゃんとコピーされているらしい。
→同期後にデバイス上で、[設定]-[一般]-[プロファイル]を開きmobileprovisionファイルが登録されている事を確認できる。
アプリのリストから、画面が表示されているところにドラッグして、iTunes下部の適用ボタンを押す。

完了!!

<参考>
・一度、ad hoc用ビルドをした後に、デバッグ実行しようとしたときに、「 The executable was signed with invalid entitlements.」というエラーが出て実行できなくなりました。(5)でdist.plistのget-task-allowのチェックを外していたのが原因だったよう。チェックを入れると実行できました。
参考:http://www.electrodream.jp/iphonedev/index.php/2009/06/the-executable-was-signed-with-invalid-entitlements/

実機テスト出来た! – Apple Developer Program

以前、iPhone Developer Programを購入したものの、Activate出来なかったという記事を書きました。
その後、2回ほどコンタクトフォームから問い合わせたのですが、1ヶ月近く待っても、返事は来ません。しびれを切らして、今日電話をしてみました。

サイトには、日本用の電話番号が載っています。言語はEnglish or Japaneseとなっています。英会話勉強中でもあるし、単純な英語なので、なんとかなるだろうと電話してみました。いざ電話してみると「日本語の場合は、2を押してください。」とかいうではありませんか。迷わず、2を押してしまいました。(苦笑)その後、「電話が混み合っています。」というガイダンスを20分ほど聞いて、ようやくオペレータに繋がりました。

状況を説明すると、「手動で認証するためにメールを送るので、それに必要事項を記入して返信してください」とのこと。登録時に使用したメールアドレスと名前を伝えます。「では、メールが届くまでお待ちください。」と言われ、電話は終了。あっけない。

15分後くらいに、「Apple Developer Programの認証手続きについて、」というメールが届きました。即、請求先住所と注文番号を記入して返信します。「いつ有効になるかなあ」と、時々Activateのリンクをクリックしていたら、30分後くらいにステータスが変わって、Activateできました。(その後で、サポートから「調整が終わったので、手続きを進めてください。」というメールが届いています。)

その後は、手持ちの書籍「iPhone SDK3 プログラミング大全(ゲームプログラミング)」の説明に従って、作業しようとしたのですが、ちょっと段取りが違いました。(まあ、バージョンも上がってますしね。)

(1)ローカルで証明書要求を作成
→これは問題なく完了。

(2) 証明書の承認とダウンロード
→とりあえず、「iPhone Dev Center」から「iOS Dev Center」 に名称が変わっています。で、(1)で作った証明書をアップロードします。書籍には、「Approveボタンを押す」と書いてありましたが、押すことなくリロードするだけで、StatusがIssuedに変わり、Downloadボタンが表示されました。そして、証明書と「WWWDR intemediate certificate」の2つをダウンロードします。それぞれ、別々にダブルクリックするとアプリが立ち上がり、キーチェーンに登録されました。

(3)デバイスの登録
ここで、デバイス(私の場合は、iPad)をMacにつなぐのですが、こわいのでメインのWindows機で念のためバックアップをとります。(Mac miniをアプリ開発にしか使ってないので、iTunseはWindowsで使っているのです。)これに、20分くらいかかりました。
iPadをMac miniにつなぎます。iTunesが立ち上がりますが、怖いので即終了させます。(あらかじめ、自動同期しない設定にしておくべきでした。)
Xcodeを起動すると自動的に「オーガナイザ」が立ち上がり、iPadが認識されています。 (うろ覚えですが、この時にiOS Dev CenterのIDとパスを入れた気がします。)
書籍では、Identifierのコードをコピーして、iOS Dev CenterサイトのProgram Portal/Deviceで「Add Device」を押すように書かれていますが、すでに自動的に登録されていました。

(4)App IDの作成
ここで躓きました。 iOS Dev CenterサイトのProgram Portal/App IDsでApp IDを登録すると、書籍には書いてあるのですが、「New App ID」ボタンを押すと、
———————————————–
We are unable to process your request.
Please go back to the previous page, or quit your browser and try your request again.
———————————————–
と表示されて、登録出来ません。 しかし、「Xcode: Wildcard AppID」というアプリがすでに1個登録されています。もしや、これがそのまま使えるのではと思い、このまま先にすすみます。

(5)Provisioning Profileの作成
ここでも書籍では、「Add Profile」でProfileを追加するように書かれているのですが、iOS Dev CenterサイトのProgram Portal/Provisioningを見ると、「Team Provisioning Profile」というのが1個すでに登録されています。これも、そのまま使えるんだろうと思い、このファイルをダウンロードして、先に進むことにしました。

(6)プロファイルのインストール
ここでは、Xcodeの「オーガナイザ」で、プロファイルを追加するように書かれているのですが、認識されているiPadを選んでも追加するようなフォームが表示されません。あれあれ、と思いメッセージを読むと、「このバージョンのiOSには対応してないよ」と書いてあります。iPadはこの前アップデートしたので、3.2.2になっています。インストールされているXcodeは、3.2.3。iOS 3.2.2には対応していないようです。iOS Dev Centerで確認すると、「Xcode 3.2.4 and iOS SDK 4.1」がリリースされていました。ならばと、新しいXcodeをダウンロードして、アップグレードします。インストールに時間がかかり30分ほど待ちました。改めて、Xcodeを起動し直すと、iPadデバイスの画面が変わっており、プロファイルを追加できるようになっていました。しかし、すでに「Team Provisioning Profile」が1個登録されています。試しに、(5)でダウンロードしたファイルを追加してみても何も変わりません。同じもののようです。これで、この手順は完了。

(7)Xcodeプロジェクトの設定
書籍では、プロジェクトの設定を変更して、Profileを変更したり、App IDを編集したりするように書いてあります。しかし、Profileはですでに選択されているし、App IDの追加もしていないので変更のしようがありません。これもこのまま進めてしまうことにしました。(苦笑) 書籍では、この後、Xcodeのメイン画面左上のプルダウンから、Deviceを選んで、「ビルドして進行」でアプリが実機で起動すると書いてあります。しかし、私の場合このプルダウンで「SDKがないよ」(正確には忘れちゃいました)みたいな表示になり、実行できなくなっています。「なんでかなあ」と思い、メニュー→プロジェクトの設定を編集を開いて見てみると、「iOS Deployment Target」が「iOS 4.0」になっています。iPadは、まだ4には上がってないようなあと、3.2に変更してみると、Deviceが選択できるようになりました。そして、「Device – 3.2」を選択して、「ビルドと実行」をクリック、ビルドが終わると、しばらくしてiPadから「ぴろっ」と音がし、アプリが起動しました!ちゃんとシミュレータ通りの動きをしています!感動です!見せびらかしに行かなければ。

というわけで、ようやく実機テストまでたどり着きました。まだ、画像を綺麗に書き直す必要があるので、公開は先になると思いますが、実機で動くようになってので、人には見せられるようになりました。やれやれです。おしまい。

Apple Developer Program

iPadアプリ開発の勉強中。

実機で動くのが見てみたくて、Apple Developer Programを購入して、iPhone Developer ProgramのActivation Codeが届いたのだけど、メール中のリンクをクリックすると、

——————————————————————————

We are unable to activate your Apple Developer Program membership.

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

——————————————————————————-

みたいなメッセージがでて、先に進めない。

8/16にContact Formから英語で問い合わせてみたけど、現時点で返事無し。

Googleで検索して調べてみると、やはりみんなこれで引っかかっているよう。対応としては、Contact Formから日本語で問い合わせればOKとなっている。

「Your region:」を「Japan」にして、英語で記入して、送ったから駄目なのかなあ。

という訳で、今日は日本語で問い合わせてみた。急ぐなら電話すると早いみたいだけど、別に急いではいないし。