2012-04-15 50 views
3

我需要将我的应用程序提交给App Store。所以在我这样做之前,我使用Xcode's验证过程验证了我的应用程序。添加授权文件

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

我想知道的是,什么是一个entitlement文件做(因为entitlement文件包含在我的项目是空的),并且将我的应用程序获得从苹果商店里拒绝拖动和从其他项目的下降文件entitlement

回答

6

据苹果参考

应享权利赋予特定的功能或安全权限,以您的应用程序。为了

具体地说

集授权值,以启用的iCloud,推送通知,和App沙盒(应用沙盒是仅用于Mac OS X)。每个权利都有一个默认值,在大多数情况下会禁用与权利相关的功能。当您设置的权利,你是通过提供相应的键值对

  1. 授权文件只是一个plist文件覆盖默认的,你可以把它看作是包括一些高级别配置其他设置文件并且对于在xcode 4.x之前进行代码签名至关重要

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

根据Apple Technical Note TN2250(我建议你摆脱授权文件的)

如果要定义一个定制的代码签名应享权利文件 你的目标之内>构建设置,那么可能尝试完全删除该配置并重建/重新提交。不是 不是,代码签名授权是不必要的定义的。如果您的 应用程序正在使用自定义钥匙串访问共享或iCloud,则只需 需要指定自定义代码签名授权文件。 否则,请从您的Xcode项目的目标>构建设置 上的所有 构建配置中删除代码签名授权配置,然后重新构建并重新尝试提交/验证。

指定签约资格的代码文件中不必要的错误,如最 可能的原因 -

的应用“富”的iPhone“foobar的的iPhone” 没有安装,因为权利是无效的。

在大多数情况下,上面看到的这些权利应该是您应用程序签名中唯一的 权利。使用Apple Push的应用程序 Notification或iCloud将添加几个权利。否则, 额外的权利比上面列出的,或拼写错误,或 格式化版本的这些权利可能会导致“失败 codesign验证”,防止上传到商店,或为特设 建立产生iTunes安装错误'the应用程序不是 ,因为权利无效“。

请参阅Reference

+0

我有一个问题,你建议我补充一点,就是我的应用程序不能够在授权文件?我不能留下它只是空白(如果在审查过程中将苹果批准我的应用程序?) – Illep 2012-04-16 15:59:05

+0

请参阅我上面编辑的答案。 我不认为苹果会拒绝你的应用程序,因为你的授权文件是空的,因此它不会覆盖默认值。但是我一年没有做过任何iOS开发,所以我不能保证。 – Phradion 2012-04-17 00:53:31

+0

但是,如果没有此授权文件,我无法提交我的应用程序进行验证。我得到了一个警告,为什么呢? – Illep 2012-04-17 01:43:04