今天我下载了 PhoneView 应用程序的演示版,令我惊讶的是,我能够使用这个 PhoneView 应用程序更改位于 Documents/Library 文件夹中的文件中的内容。
我想限制用户访问我的应用程序中的文件,并想让这些文件对这些 3rd 方工具不可见?有没有办法实现它?
今天我下载了 PhoneView 应用程序的演示版,令我惊讶的是,我能够使用这个 PhoneView 应用程序更改位于 Documents/Library 文件夹中的文件中的内容。
我想限制用户访问我的应用程序中的文件,并想让这些文件对这些 3rd 方工具不可见?有没有办法实现它?
无法限制对文件的访问。但是如果你想阻止人们查看文件,你可以加密它们。这可能会有所帮助(CommonCrypto 部分)。您需要生成一个加密密钥(我认为您可以使用CFUUIDCreate
它)并将其存储在您应用的钥匙串中。
PhoneView 和类似的应用程序可以直接访问 iOS 设备文件系统,这与 iTunes 相同,因此它们能够浏览和修改设备上 iTunes 可访问的所有媒体,包括音乐、视频、应用程序以及它们创建的所有数据。
基本上,您无法阻止他们查看您的应用程序数据,因为他们不尊重任何可见性键,只是列出文件系统中的所有内容。
因此,如果您真的不顾一切地向窥探其设备文件系统内容的用户隐藏您的应用程序数据,您将不得不以某种不可读的格式对所有文件进行编码,这样用户仍然可以更改和删除数据,但无法理解它。
简短的回答:您确实无法采取任何措施来防止这种情况发生,我强烈建议您将应用数据保持原样。
也许唯一的方法是编码和解码您不喜欢其他人看到的文件。iOS 上的 Documents 文件夹与 OS x 的 Documents 相同,所有应用程序或人都可以阅读。