Data Protection/NSFileProtectionComplete - 通过entitlements.plist成功支持?

Sni*_*ips 8 data-protection entitlements ios

我正在寻找加密应用程序中的用户数据,NSFileProtection机制看起来很完美.

这个SO问题/答案线程向我指出了WWDC 2011视频保护iOS应用程序 ,它提供了通过权利在应用程序中设置数据保护的"太好了,真实"的提示(参见33分钟).

所以,我为我的iOS 5.x +应用尝试了这个,并遇到了抱怨无效权利的问题.

我已经通过iOS Provisioning Portal为特定应用程序配置了数据保护,并更新了我的应用程序配置,所以理论上我应该全部设置,但我仍然得到错误.

如果从Entitlement中删除特定的FileProtectionComplete设置,则应用程序运行时不会出现Invalid Entitlement错误.

在调查这一点时,我也看到一些人正在拒绝他们的应用程序(当他们上传二进制文件时),因为这不受支持(或不赞成?).请注意,我特别询问数据保护,而不是Passbook.

在这个阶段,我在想,也许它确实是,"真是太好了".所以,我即将放弃这个神奇的权利标志,而是使用编程方法,添加NSFileProtectionComplete作为写选项.

但是,在我这样做之前,任何人都可以确认他们只是通过使用Entitlements标志成功添加数据保护吗?谢谢.

Hea*_*ers 11

NSFileProtectionComplete不再通过权利支持.相反,它在配置文件中指定.

我遇到了同样的问题.当我尝试在设备上构建和运行时,我收到以下警报:

可执行文件使用无效的权利进行签名.

应用程序的代码签名权利文件中指定的权利与您的供应配置文件中指定的权利不匹配.

(0xE8008016).

在控制台中,它表现为此错误:

5月6日16:18:13 XXXXX installd [54]:权利'DataProtectionClass'具有供应配置文件不允许的值

最终,我找到了正确的设置.您必须登录开发人员门户并对与您正在使用的配置文件关联的应用程序ID启用数据保护.见下图:

在此输入图像描述