添加权利文件

时间:2012-04-15 16:21:10

标签: iphone objective-c xcode cocoa-touch

我需要将我的应用程序提交到App Store。所以在我这样做之前,我使用Xcode's验证过程验证了我的应用程序。

提交验证时,需要将entitlement文件添加到项目中。我无法创建此文件,因此我从另一个项目中拖了一个entitlement文件并包含在我的文件中。此entitlement文件中不包含任何数据(它是空文件)。但是,当我通过Xcode将其提交给验证时,验证成功通过。

我想知道的是,entitlement文件做了什么(因为我项目中包含的entitlement文件是空的)并且我的应用程序会被appStore拒绝拖放{来自另一个项目的{1}}文件?

1 个答案:

答案 0 :(得分:6)

根据Apple Reference

  

授权可为您的应用授予特定功能或安全权限。

具体地

  

设置权利值以启用iCloud,推送通知和App Sandbox(App Sandbox仅限Mac OS X)。每个权利都有一个默认值,在大多数情况下会禁用与权利相关联的功能。设置权利时,您通过提供适当的键值对来覆盖默认值

  1. 权利文件只是一个plist文件,您可以将其视为另一个包含一些高级配置的设置文件,对于在xcode 4.x之前对adhoc构建进行代码签名至关重要

  2. 空权利文件有效,因为XCode会将空权利文件视为您要使用Apple引用指定的所有默认值。在您的应用项目中保留权利文件不会造成任何伤害,除非您指定了您的应用无法使用的内容,即icloud存储。如果您不需要本地分发,最好删除该文件。 :)

  3. 根据Apple Technical Note TN2250(我建议您删除授权文件)

      

    如果您要在其中定义自定义代码签名权利文件   你的目标>构建设置,您可以尝试删除它   完全配置和重建/重新提交。通常比   不,代码签名权利是不必要的定义。只有你   如果您需要,请指定自定义代码签名权利文件   应用程序正在使用自定义钥匙串访问共享或iCloud。   否则,从all中删除Code Signing Entitlements配置   在Xcode项目的目标>上构建配置构建设置,   重建并重新尝试提交/验证。

         

    最不必要地指定代码签名权利文件   可能导致错误的原因,如 -

         

    iPhone“foobar的iPhone”上没有安装应用程序'Foo'   因为权利无效。

         

    在大多数情况下,上述权利应该是唯一的   您应用程序签名中的权利。使用Apple Push的应用程序   通知或iCloud将添加一些权利。除此以外,   额外的权利,而不是上面列出的,或不正确的拼写,或   这些权利的格式化版本可能会导致“失败”   代码签署验证“阻止上传到商店或Ad Hoc   构建产生iTunes安装错误'应用程序不是   安装,因为权利无效'。

    请参阅Reference