3

アプリをAppStoreに送信する必要があります。そのため、これを行う前に、Xcode's検証プロセスを使用してアプリケーションを検証しました。

検証のために提出するときentitlement、プロジェクトにファイルを追加する必要がありました。このファイルを作成できなかったので、別のプロジェクトからファイルをドラッグして自分のentitlementファイルに含めました。このentitlementファイルにはデータが含まれていませんでした(空のファイルでした)。ただし、Xcodeを介して検証に送信すると、検証は正常に合格しました。

私が知りたいのは、ファイルは何をするのかentitlement(私のプロジェクトに含まれるファイルは空であるため)、別のプロジェクトからファイルentitlementをドラッグアンドドロップしたために私のアプリはappStoreから拒否されますか?entitlement

4

1 に答える 1

6

Appleリファレンスによると

資格は、アプリに特定の機能またはセキュリティ権限を付与します。

具体的には

iCloud、プッシュ通知、およびApp Sandboxを有効にするために資格値を設定します(AppSandboxはMacOS Xのみです)。各エンタイトルメントにはデフォルト値があり、ほとんどの場合、エンタイトルメントに関連付けられている機能が無効になります。資格を設定すると、適切なキーと値のペアを提供することでデフォルトを上書きします

  1. エンタイトルメントファイルは単なるplistファイルであり、いくつかの高レベルの構成を含む別の設定ファイルとして見ることができ、xcode4.xより前のアドホックビルドのコード署名に不可欠です。

  2. 空のエンタイトルメントファイルは有効です。XCodeは空のエンタイトルメントファイルを、Appleのリファレンスで指定されているすべてのデフォルト値を使用するように処理するためです。アプリプロジェクトにエンタイトルメントファイルを残しても、アプリで機能しないもの、つまりicloudストレージを指定しない限り、害はありません。ローカル配布が必要ない場合は、そのファイルを削除することをお勧めします。:)

AppleテクニカルノートTN2250によると(エンタイトルメントファイルを削除することをお勧めします)

[ターゲット]>[ビルド設定]内でカスタムコード署名資格ファイルを定義している場合は、その構成を完全に削除して、再構築/再送信してみてください。多くの場合、コード署名の資格は不必要に定義されています。アプリケーションがカスタムキーチェーンアクセス共有またはiCloudを利用している場合にのみ、カスタムコード署名資格ファイルを指定する必要があります。それ以外の場合は、Xcodeプロジェクトの[ターゲット]> [ビルド設定]のすべてのビルド構成からコード署名資格構成を削除し、再構築して送信/検証を再試行します。

コード署名エンタイトルメントファイルを不必要に指定すると、次のようなエラーが発生する可能性が最も高くなります。

エンタイトルメントが無効なため、アプリ「Foo」はiPhone「foobarのiPhone」にインストールされませんでした。

ほとんどの場合、上記の資格は、アプリの署名の唯一の資格である必要があります。Apple Push NotificationまたはiCloudを使用するアプリケーションは、いくつかの資格を追加します。そうしないと、上記のエンタイトルメントよりも余分なエンタイトルメント、スペルが正しくない、またはフォーマットされたバージョンのエンタイトルメントにより、ストアへのアップロードが妨げられる「コードサインの検証に失敗」するか、アドホックビルドの場合にiTunesインストールエラーが発生する可能性があります。資格が有効ではないためです。

参考資料をご覧ください

于 2012-04-16T01:24:15.643 に答える