我想在应用程序中加密用户数据,而 NSFileProtection 机制看起来非常适合这个。
这SO Question / Answer thread向我指出 WWDC 2011 视频 Securing iOS Apps这给出了通过授权在整个应用程序中设置数据保护的“好得令人难以置信”的提示(从 33 分钟开始)。
所以,我为我的 iOS 5.x+ 应用程序尝试了这个,并遇到了问题,它提示 Invalid Entitlements .
我已经通过 iOS Provisioning Portal 为特定应用配置了数据保护,并更新了我的应用 Provisioning,所以理论上我应该全部设置完毕,但我仍然收到错误。
如果我从授权中删除特定的 FileProtectionComplete 设置,应用程序运行时不会出现无效授权错误。
在对此进行调查时,我还看到一些人正在获取他们的应用程序 rejected (在他们上传二进制文件时)因为不支持(或弃用?)。请注意,我具体询问的是数据保护,而不是 Passbook。
在这个阶段,我在想,也许真的是“好得令人难以置信”。所以,我打算放弃这个神奇的权利标志,而是使用编程方法,将 NSFileProtectionComplete 添加为写入选项。
但是,在我这样做之前,任何人都可以确认他们已经能够通过使用 Entitlements 标志成功添加数据保护吗?谢谢。
最佳答案
NSFileProtectionComplete
不再受权利支持。相反,它在配置文件中指定。
我遇到了和你完全一样的问题。当我尝试在设备上构建和运行时,我收到以下警报:
The executable was signed with invalid entitlements.
The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.
(0xE8008016).
在控制台中,它表现为以下错误:
May 6 16:18:13 XXXXX installd[54] : entitlement 'DataProtectionClass' has value not permitted by a provisioning profile
最终,我找到了正确的设置。您必须登录到开发人员门户并在与您正在使用的配置文件关联的应用程序 ID 上启用数据保护。见下图:
关于ios - 数据保护/NSFileProtectionComplete - 通过 entitlements.plist 成功支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14734758/