HOMEに戻る(ブログのみを御覧の方専用)
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

iOSアプリを実機で動かす
iOSアプリを自作し、App Storeでダウンロードできるようにするには、事前に実機で動作確認します。
そのためにはまずiOS Developer Programに登録します。

その後、アプリを実機で動作させるまでの手順でいくつか引っかかったので、それをメモしておきます。
実施したのは以下の環境です。

実機:iPod Touch (OS:4.3.3)
アプリ:iOS4以上向け


基本的に以下のサイトで紹介されてる通りに実行すれば問題ありません。
http://kentaro-shimizu.com/lecture/iphone/step3.html

このサイトによりますと、大きく分けると手順は次のとおりです。

1. 証明書を作成する
2. iPhone Developer Programに証明書要求
3. 証明書をMacにインストール
4. iPhone/iPod touchのデバイス情報を登録する
5. AppIDを取得する
6. Provisioning Profileの作成
7. XCodeでProvisioning Profileの設定
8. コード署名IDの設定
9. いざ実機テスト

しかしこれは少し古い情報らしく、紹介されている通りに実行しても以下のエラーが出ました。

The executable was signed with invalid entitlements.
The entitlements specified in your application's Code Signing Entitlements file do not match those specified in your provisioning profile.
0xE8008016

こちらの解決策を探しても、大体「クリーンインストールしろ」しかなかったのですが、クリーンインストールしても解決しません。
ぼくの場合、オーガナイザの左ペインのDeveloper Profileに、余計なプロファイルを登録していたのが原因でした。
(これは以前紹介した、iOS Developer Programに登録せずに実機で動作確認させるために作ったダミーのプロファイル)
なので、それを削除して正しいプロファイルだけを登録してビルドすると、このエラーは消えました。


これで、ビルドして実機にアップロードでき…ません!orz
次のエラー。

The binary you uploaded was invalid. The application-identifier entitlement is not formatted correctly; it should contain your 10-character App ID Seed, followed by a dot, followed by your bundle identifier.

App IDを登録する際、com.mycompany.appnameのような名前で登録すると思います。
これで作成したプロファイルを、オーガナイザのProvisioning ProfilesのApp Identifierで確認すると、comの前にランダム文字列がくっついているのがわかります。

1234567890.com.mycompany.appname

この、新たにくっついた10文字の情報がアプリに無いよ!というのが、上記のエラーなんだと思います。

解決方法。
Entitlement.plist(iOS SDK 4.0以上だと、xcentファイル?)に上記情報を付け足します。
ファイルの場所は以下です。
/Developer/(任意のディレクトリ)/(プロジェクト名)/build/(プロジェクト名).build/(Debug or Release)-iphoneos/(プロジェクト名).build/(プロジェクト名).xcent

このファイルの、以下の赤字の箇所を、先ほどの10文字くっついたApp IDに書き換えます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>XXXXXXXX.com.mycompany.appname</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>XXXXXXXX.com.mycompany.appname</string>
</array>
</dict>
</plist>

次に、アプリ内のBundle情報も書き換えます。
Xcodeの左ペインの[Resources]内にある(プロジェクト名)-Info.plistというファイルを選択します。
すると右ペインに情報が表示され、このBundle identifierの先頭にも、先ほどの10文字を追加します。

以上でこのエラーは解決できるはず。


これでひとまず、実機にアップロードでき、動作確認することができました!
いやー長かった…。
[PR]
by icemintken | 2012-02-19 16:25 | iPhoneアプリ開発
<< もうすぐ…! スキー写真(D3100 + シ... >>


その他のジャンル

ファン

記事ランキング

ブログジャンル

画像一覧