2012-03-12 67 views
0

我想锁定我的应用程序中的主要捆绑资源..我有数据库添加到我的资源文件夹,我想锁定,因此没有人可以从应用程序外部访问或读取数据库。像一些.bin文件类型转换?并将它们解密到应用程序中?任何帮助?iPhone NSMain捆绑软件资源

+1

如果设备是越狱那么任何人访问你的资源文件夹,否则就不是在iphone更多钞票。 – hchouhan02 2012-03-12 08:49:07

+0

没有越狱,你解压缩IPA和直接访问您的计算机上的资源文件夹;-) – 2012-03-12 09:43:15

+0

如何锁定它们呢? .txt文件?或者我们必须加密内容? – faiziii 2012-03-12 10:49:24

回答

0

如上所述,在普通的iPhone上,没有人可以看到您的捆绑数据。然而,在越狱手机中,人们可以轻松提取持久存储并使用它。

因此,您需要加密持久性存储库,即sql文件本身。这可以通过创建持久性存储时传递适当的选项来完成:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator { 
    if (persistentStoreCoordinator != nil) { 
     return persistentStoreCoordinator; 
    } 

    NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"database.sqlite"]; 
    NSURL *storeUrl = [NSURL fileURLWithPath:storePath ]; 

    NSError *error = nil; 
    persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]]; 
    if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) { 
     // Handle error 
    } 

    NSDictionary *fileAttributes = [NSDictionary dictionaryWithObject:NSFileProtectionComplete forKey:NSFileProtectionKey]; 
    if (![[NSFileManager defaultManager] setAttributes:fileAttributes ofItemAtPath:storePath error:&error]) { 
     // Handle error 
    } 

    return persistentStoreCoordinator; 
} 
+0

你不需要越狱来访问包内容,你可以直接在电脑上做到这一点。 .ipa文件可以用常规zip工具解压缩。在这个ipa文件中,您将找到一个包含所有资源的.app文件夹。 – 2012-03-12 09:46:16

+0

感谢您的回答......但是如果我们直接下载到桌面的应用程序......资源包很容易访问......那么我们的.txt文件呢?它可以被锁定吗?或者我们必须对此应用加密? – faiziii 2012-03-12 09:59:44

+0

是的,这就是我说的任何想法如何锁定它们?或者我们必须对这些文件应用加密?像文本文件? – faiziii 2012-03-12 10:02:39