Ресурсы iPhone NSMain Bundle - PullRequest
       23

Ресурсы iPhone NSMain Bundle

0 голосов
/ 12 марта 2012

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

1 Ответ

0 голосов
/ 12 марта 2012

Как уже говорилось, на обычном 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...