2012-03-12 9 views
0

Я хочу заблокировать основные ресурсы пакета в моем приложении. У меня есть база данных, добавленная в мою папку ресурсов, и я хочу заблокировать ее, чтобы никто не мог получить доступ или читать базу данных извне приложения. например, преобразование типа .bin в файлы? и расшифровать их в приложение? любая помощь?iPhone NSMain Bundle Resources

+1

, если устройство является побег из тюрьмы, то любой доступ к вашей папке ресурсов в противном случае она не в Iphone Возможная. – hchouhan02

+0

без джейлбрейка вы разархивируете ipa и получите доступ к папке ресурсов прямо на вашем компьютере ;-) –

+0

как их заблокировать? .txt файлы? или нам нужно зашифровать содержимое? – faiziii

ответ

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 со всеми ресурсами. –

+0

Спасибо за ответ ... но что, если приложение, которое мы загружаем прямо на наш рабочий стол ... пакеты ресурсов легко доступны ... как насчет наших .txt-файлов? может ли он быть заблокирован? или нам нужно применить шифрование? – faiziii

+0

Да, что я говорил о том, как их блокировать? или мы должны применять шифрование в этих файлах? как текстовые файлы? – faiziii