Home > dev/programming > iOS SDK 4.0でコンパイルしたアプリzipのApp Storeアップロードでエラー

iOS SDK 4.0でコンパイルしたアプリzipのApp Storeアップロードでエラー

iOS SDK 4.0でコンパイルするとデフォルトでマルチタスク対応になるので、App Storeで提供中の楽たびをマイナーチューニングついでにiOS4 SDK4.0でコンパイルしたものをApp Storeに提出することにした。

アップロードしたアプリがエラー

いつもの通り、iTunes Connectからアプリのzipファイルをアップロードしたところまでは良いのだが、次のエラーが出てアプリアップデートが完了しない。

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.

どこかにミスがないかいろいろ確かめても、そのようなものは見つからない。

Googleしたら、やはり同様の問題を解決したページを見つけた。iOS 4.0 SDKの場合、なぜかApp Identifierに”*”を使ったProvisioning Profileを選択するとこのエラーが出るらしい。回避策はEntitlement.plistにApp Identifierの記述の追加が必要だということなので、自分もやってみたら、あっさりうまくいった。

Entitlement.plistをplain textとして開き、以下のように10桁のApp ID seedから始まるApp Identifierを<key>と<string>のペアとして追加。(赤字が追加部分)

<?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>

別の回避策もあるのかもしれないですが、とりあえず私はこれでApp Storeにアップロード成功しました。iOS SDK 4.0で作成したプロジェクトも同様の問題が発生するか不明ですが、この問題には多くの人がハマっているのではないだろうか。

すっかり時間をつぶしてしまった。さてさて、次の仕事に移ろう。

追記:SDK4.0でEtitlement.plistを作成し直すと問題が解決するというコメントをいただいたので試してみたところ、application-identiferとkeychain-access-groupsに$(AppIdentifierPrefix)$(CFBundleIdentifier)が追加されたものが生成されました。Appleのデベロッパープログラムユーザーガイドも最新がまだSDK3.1向ドキュメントの確認ができませんでしたが、これをこのまま使用できそうです。

Advertisements
  1. June 25, 2010 at 5:00 pm

    私も同じエラーで、ここに来ました。
    Provisioning PortalのDistributionの説明でEntitlments.plistを新規作成しましょう。とあったので新規作成したところ、
    application-identiferの値が、$(AppIdentifierPrefix)$(CFBundleIdentifier)
    というようなマクロになりました。
    そしてSubmit成功しました。

    • June 25, 2010 at 11:54 pm

      かみやんさん、情報ありがとうございます。今やってみたらおっしゃる通りapplication-identifierが追加されました。でも、get-task-allowがなくなりましたが、追加が必要なんですかね?

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: