我有一个基于 Core Data 的 iPhone 应用程序,其中包含一个预填充的只读数据库。我可以对我的数据库应用什么保护(如果有)以减少盗版/数据库被越狱 iPhone 读取的可能性?
大多数使用预先填充的 sqlite 数据库的代码示例显示数据库从应用程序包复制到 iPhone 上应用程序的文档目录中,这在越狱的 iPhone 上完全可见。相反,我考虑直接从应用程序包中使用数据库,如下所示:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (persistentStoreCoordinator != nil) {
return persistentStoreCoordinator;
}
NSURL *storeUrl = [NSURL fileURLWithPath:
[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:
@"MyDatabaseName.sqlite"]];
<... followed by standard persistentStoreCoordinator code ...>
当我在商店 url 上放置一个断点时,它只返回另一个文件位置,我猜它与越狱 iPhone 中的文档目录一样可见:
<CFURL 0x139610 [0x38388ff4]>{type = 15, string = file://localhost/var/mobile/Applications/6ACD76F0-396D-4DB1-A46B-B2459A084063/MyiPhoneApp.app/MyDatabaseName.sqlite, base = (null)}
有人可以确认以上是否正确和/或是否有其他方法可以解决此问题(我不希望加密或类似的东西......希望快速保护解决方案)?感谢一个坚定的黑客会得到他们想要的——如果可以的话,我至少想提出一些抵抗。
谢谢