我需要将我的应用程序提交到App Store。所以在我这样做之前,我使用Xcode's
验证过程验证了我的应用程序。
提交验证时,需要将entitlement
文件添加到项目中。我无法创建此文件,因此我从另一个项目中拖了一个entitlement
文件并包含在我的文件中。此entitlement
文件中不包含任何数据(它是空文件)。但是,当我通过Xcode将其提交给验证时,验证成功通过。
我想知道的是,entitlement
文件做了什么(因为我项目中包含的entitlement
文件是空的)并且我的应用程序会被appStore拒绝拖放{来自另一个项目的{1}}文件?
答案 0 :(得分:6)
根据Apple Reference
授权可为您的应用授予特定功能或安全权限。
具体地
设置权利值以启用iCloud,推送通知和App Sandbox(App Sandbox仅限Mac OS X)。每个权利都有一个默认值,在大多数情况下会禁用与权利相关联的功能。设置权利时,您通过提供适当的键值对来覆盖默认值
权利文件只是一个plist文件,您可以将其视为另一个包含一些高级配置的设置文件,对于在xcode 4.x之前对adhoc构建进行代码签名至关重要
空权利文件有效,因为XCode会将空权利文件视为您要使用Apple引用指定的所有默认值。在您的应用项目中保留权利文件不会造成任何伤害,除非您指定了您的应用无法使用的内容,即icloud存储。如果您不需要本地分发,最好删除该文件。 :)
根据Apple Technical Note TN2250(我建议您删除授权文件)
如果您要在其中定义自定义代码签名权利文件 你的目标>构建设置,您可以尝试删除它 完全配置和重建/重新提交。通常比 不,代码签名权利是不必要的定义。只有你 如果您需要,请指定自定义代码签名权利文件 应用程序正在使用自定义钥匙串访问共享或iCloud。 否则,从all中删除Code Signing Entitlements配置 在Xcode项目的目标>上构建配置构建设置, 重建并重新尝试提交/验证。
最不必要地指定代码签名权利文件 可能导致错误的原因,如 -
iPhone“foobar的iPhone”上没有安装应用程序'Foo' 因为权利无效。
在大多数情况下,上述权利应该是唯一的 您应用程序签名中的权利。使用Apple Push的应用程序 通知或iCloud将添加一些权利。除此以外, 额外的权利,而不是上面列出的,或不正确的拼写,或 这些权利的格式化版本可能会导致“失败” 代码签署验证“阻止上传到商店或Ad Hoc 构建产生iTunes安装错误'应用程序不是 安装,因为权利无效'。
请参阅Reference