2010-12-22

Entitlements.plist

iOS SDK 4.2を使う場合は、たとえAdHoc用のビルドでも、通常Entitlements.plistは不要。

XcodeがEntitlements.plistを自動生成してくれるからです。

build/プロジェクト名.build/構成名-iphoneos/ターゲット名.build/ターゲット名.xcent

に、Technical Q&A QA1710 Figure 4と同じEntitlements.plistが生成されます。

へたに自分で作るとエラーを喰らいます。ビルド設定「コード署名権限(CODE_SIGN_ENTITLEMENTS)」を削除しましょう。


で、「通常不要」ということは、必要とする場合があるわけですが、

Technical Q&A QA1710
IMPORTANT: An Entitlements file is generally only needed when building for Ad Hoc Distribution or enabling Keychain data sharing. If neither of these is true, delete the entry in Code Signing Entitlements. This will resolve the error.


前述通りAdHoc用ビルドだとしても自動生成されますから、自分でEntitlements.plistを用意しなければならないという場合は、Keychain data sharingのときだけ、ということになります。その場合は、必ずXcodeの「ファイル追加」で生成しましょう。追加>新規ファイル>Code Signing>Entitlementsです。

(調査の経緯は私のtweets 15時〜)