9

Xcode 4 に移行しましたが、アプリケーションを App Store に送信できなくなりました。Xcode または Application Loader を介して送信するたびに、同じエラーが発生します。

「アプリケーション識別子の資格が正しくフォーマットされていません...」

これをグーグルで検索すると、アプリケーション識別子キーがアプリケーションバンドル ID と一致する必要がある Entitlements.plist ファイルが示されます: たとえば、J1234567885.com.domain.appName

事は、そうです。app.plist と Entitlements.plist のバンドル識別子は同じです! 私は何を間違っていますか?これが私の Entitlements.plist ファイルです(振り返ってみると変更されていません):

<?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>J1234567885.com.domain.appName</string>
    <key>get-task-allow</key>
    <true/>
</dict>
</plist>

上記の識別子を変更しましたが、参考までに...

4

4 に答える 4

9

mootymoots で説明されているのと同じ問題がありました。Entitlements.plist にいくつかのパラメーターを追加することで、この問題を解決しました。

私はTestFlightを使用してアプリをテスト グループにデプロイしているので、 Xcode 4 を使用して IAP を生成するための TestFlight の指示に厳密に従うことが重要だと感じました。

「新しいファイル...」ウィザードを使用して Entitlements.plist を作成すると、次のように生成されました。

<?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>get-task-allow</key>
  <true/>
</dict>
</plist>

アーカイブを作成しようとすると、「アプリケーション識別子の資格が正しくフォーマットされていません...」という警告がスローされました。

いくつかのグーグルを通じて、plist には Xcode 変数を値として持つ 2 つの追加パラメーターが必要であることに気付きました。application-identifier と keychain-access-groups を含める方法については、以下のスニペットを参照してください。(後者が私が抱えていた問題と関係があるとは思いませんが)

<?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>get-task-allow</key>
  <false/>
  <key>application-identifier</key>
  <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
  <key>keychain-access-groups</key>
  <array>
      <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
  </array>
</dict>
</plist>

これらのパラメーターを追加すると、アーカイブは警告をスローしなくなり、TestFlight を使用して配布できるようになりました。

于 2011-09-25T20:18:09.313 に答える
6

Xcode 4+ では、Release ビルドに Entitlements.plist は必要ないことがわかりました (少なくとも、Xcode 4 は、Xcode 3 がしなかった奇妙なことを行います)。

とにかく、私の問題を解決するために、ビルド設定の「コード署名資格」の下のリリースパラメーターから Entitlements.plist への参照を削除しました。

構築、アーカイブ、検証、iTunes Connect への提出。

于 2011-06-18T10:25:50.540 に答える
1

私の場合、これはディストリビューション プロビジョニング プロファイル (com.mycompany.*) にワイルドカード アプリ ID を使用したことが原因でした。絶対アプリ ID を使用してプロビジョニング プロファイルに置き換えると、問題が解決しました。

于 2013-04-06T11:22:34.647 に答える
0

Xcode 4 では、権利ファイルにアプリケーション識別子を含めないでください。[ターゲット] -> [概要] タブのみ。また、AppStore に送信するには、get-task-allow を False に設定する必要があります。

修正するには、現在の entitlements.plist ファイルを削除し、[ファイル] -> [新規] -> [新規ファイル] を使用して新しいファイルを作成します。キー get-task-allow = FALSE を使用して、それを試してください。[ターゲット] -> [概要] タブにアプリケーション識別子を入力してください。

于 2011-06-16T23:01:52.803 に答える