Getting Things Done!

大きな夢は目の前にある1つ1つの小さなことをこなしてこそ達成される

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 |

開発途上のiPhoneアプリを実機で動かすときにハマる点

SDKをインストールしてXCodeとiPhoneシミュレータで開発が進んでくると実機に入れたくなります。

ここが大変だよiPhone実機テスト
↑こちらのサイトには詳しくその手順が説明されています。

1.証明書作成
2.Device登録
3.AppID登録
4.プロビジョニングファイル作成
5.プロビジョニングファイル配備
6.Xcodeのプロジェクト設定

聞き慣れない名称が多く戸惑うことも多いのですが、これらについて深い意味を知らなくてもとりあえず実機にアプリを転送させることができます。

ただ意味がわからないと一度躓くと途方にくれてしまいます、本当に。
僕がハマった問題点を説明して、そしてどのサイトでも解決方法を見つけることが出来なかったある問題点の解決方法を説明したいと思います。

問題が起きるのは恐らく以下の4つです。
1.キーチェーンに証明書が登録されていない
2.プロビジョニングプロファイルの配置ができていない
3.AppIDとBundleIdentifierが異なる
4.キーチェーンに秘密鍵が登録されていない


「キーチェーンに証明書が登録されていない」場合

「証明書の作成」を行っていない単純なミス。
そもそもキーチェーンアクセスになじみがないと意味がわからないので忘れがちです。
上のリンクを参考に作成すれば解決です。


「プロビジョニングプロファイルの配置ができていない」場合

作成したプロビジョニングファイルを配備していないというミス。
所定の場所に配備(コピー)するとありますが、iPhone Dev Center内のiPhone Provisioning Portalで作成したプロビジョニングファイルをダウンロードできるのでダウンロードしたらXCodeのアイコンにドラッグ&ドロップするだけで所定の位置に配備されます(ゆうじさんアドバイス)


「AppIDとBundleIdentifierが異なる」場合

作成したAppIDとinfo.plistのBundle Identifierがマッチしていないというミス。
このAppIDですが最初はどのような文字列をAppIDにすればいいのか悩みました。
作成する際、
1.Bundle Seed ID (App ID Prefix)
2.Bundle Identifier (App ID Suffix)
の2つを指定して「X7555395VP.jp.nicomelmo.*」のような文字列を生成します。

最初のBundle Seedはinfo.plistのBundle Identifierには含めません。
上記の場合ですとX7555395VP.まで(ドットを含みます)は無視します。

次にBundle Identifierの方ですが最後の*は「ここには何でもいれてもいいよ」ということを指定しています。
なぜこんなことするかというと、
開発途上の場合AppIDをX7555395VP.jp.nicomelmo.myappとしてしまうとこのAppIDはある1つの
アプリでしか使えなくなるのです。試験的に新たにアプリを実機にいれて試す場合はいちいちiPhone Provisioning Portalサイトへ行って別のAppIDを登録しないといけないからです。
そこで末尾を*(ワイルドカード)にしておくのです。

こうしておけばあるアプリのBundle IdentifierにはX7555395VP.jp.nicomelmo.myapp11、別のアプリのBundle IdentifierにはX7555395VP.jp.nicomelmo.myapp22、とできるわけです。

で、最初はこの意味が理解できずinfo.plistのBundle Identifierに以下のものを入れていました。
・X7555395VP.jp.nicomelmo.*
・jp.nicomelmo.*
・myapp11

もちろんこれは間違いで、これが3の問題を誘発するのでは、と思っています。


「キーチェーンに秘密鍵が登録されていない」場合

これはハマります、本当に、ハマりました。
この問題はiPhone Dev Centerの登録を行ったマシンとは「別のマシン」で同じことを行うときに起こります。
「証明書の作成」の手順でキーチェーンアクセス(パスワードや証明書を管理するアプリ)には証明書だけが作成されます。ただ、iPhone Dev Centerの登録を行ったマシンではキーチェーンアクセスにiPhone Dev Centerアクセス用の「秘密鍵」が作られます。この秘密鍵がないと最後の手順「Xcodeのプロジェクト設定」が出来ないのです。
そこで、以下の手順でその秘密鍵を現在開発中のマシンのキーチェーンに登録します。
1.登録を行ったマシンのキーチェーンアクセスからその秘密鍵を探します。
2.右クリックで「xxxを書き出す...」でファイルに書き出します。
3.その秘密鍵ファイルを現在開発中のマシンにコピーします。
4.最後に秘密鍵ファイルをダブルクリックするとキーチェーンに登録されます。

これで問題解決しました。

色々と苦労したので作ったアプリが実機で動いたときは感動でした。
この情報が誰かの役に立つことを祈ります。

関連記事
スポンサーサイト

iPhone | コメント:0 | トラックバック:0 |
<<iPone4、2台目届きました | HOME | プロアクティブのTVCMが小倉優子さんに>>

この記事のコメント

コメントの投稿















コメント非公開の場合はチェック

この記事のトラックバック

| HOME |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。