添加权利文件

Ill*_*lep 3 iphone xcode cocoa-touch objective-c

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

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

我想知道的是,entitlement文件是做什么的(因为entitlement我的项目中包含的文件是空的),我的应用程序是否会被appStore拒绝entitlement从另一个项目中拖放文件?

Phr*_*ion 6

根据Apple Reference

权利授予您的应用程序特定功能或安全权限.

特别

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

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

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

根据Apple技术说明TN2250(我建议你摆脱权利文件)

如果要在Target> Build Settings中定义自定义Code Signing Entitlements文件,则可以尝试完全删除该配置并重建/重新提交.通常,不必要地定义代码签名权利.如果您的应用程序使用自定义密钥链访问共享或iCloud,则只需指定自定义代码签名权利文件.否则,从Xcode项目的Target> Build Settings中的所有构建配置中删除Code Signing Entitlements配置,重建并重新尝试提交/验证.

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

应用程序'Foo'未安装在iPhone"foobar的iPhone"上,因为权利无效.

在大多数情况下,上述权利应该是您应用程序签名中的唯一权利.使用Apple推送通知或iCloud的应用程序将添加一些权利.否则,额外的待遇比上面列出的那些,或不正确拼写,或格式化这些权利的版本很可能会导致"未能协同设计验证"防止上传到店,或特设构建产生的iTunes安装错误"未安装该应用程序因为权利无效'.

请参阅参考