根据苹果参考
权利赋予您的应用程序特定的功能或安全权限。
具体来说
设置权利值以启用 iCloud、推送通知和 App Sandbox(App Sandbox 仅适用于 Mac OS X)。每个权利都有一个默认值,在大多数情况下会禁用与权利关联的功能。设置权利时,您将通过提供适当的键值对来覆盖默认值
授权文件只是一个 plist 文件,您可以将其视为另一个设置文件,其中包含一些高级配置,并且对于 xcode 4.x 之前的临时构建进行代码签名至关重要
空的权利文件是有效的,因为 XCode 将把空的权利文件视为您想要使用 Apple 参考指定的所有默认值。在您的应用程序项目中保留一个授权文件不会造成任何损害,除非您指定您的应用程序不具备的功能,即 icloud 存储。如果您不需要本地分发,最好只删除该文件。:)
根据Apple Technical Note TN2250(我建议您摆脱授权文件)
如果您在 Target > Build Settings 中定义自定义代码签名权利文件,您可以尝试完全删除该配置并重新构建/重新提交。通常情况下,代码签名权利的定义是不必要的。如果您的应用程序使用自定义钥匙串访问共享或 iCloud,您只需指定自定义代码签名权利文件。否则,请从 Xcode 项目的 Target > Build Settings 上的所有构建配置中删除 Code Signing Entitlements 配置,重新构建并重新尝试提交/验证。
不必要地指定代码签名权利文件是最可能导致错误的原因,例如 -
应用程序“Foo”未安装在 iPhone“foobar 的 iPhone”上,因为权利无效。
在大多数情况下,上面看到的那些权利应该是您应用程序签名中的唯一权利。使用 Apple Push Notification 或 iCloud 的应用程序将添加一些权利。否则,超出上面列出的权利,或者这些权利的拼写错误或格式版本可能会导致“失败的代码验证”阻止上传到商店,或者对于 Ad Hoc 构建产生 iTunes 安装错误“未安装应用程序因为权利是无效的”。
请参阅参考