У меня есть приложение для iPhone на основе Core Data с предварительно заполненной базой данных только для чтения. Какую защиту (если таковая имеется) я могу применить к моей базе данных, чтобы уменьшить вероятность пиратства / чтения базы данных с поврежденного 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)}
Может ли кто-нибудь подтвердить, если вышеприведенное является правильным и / или есть ли другие способы решения этой проблемы (я не ищу шифрование или что-то в этом роде ... надеюсь на быстрое решение для защиты)? Ценить решительного хакера получит то, что он хочет - я хочу, по крайней мере, оказать некоторое сопротивление, если смогу.
Спасибо