Как сохранить файлы основных данных в личной папке - PullRequest
0 голосов
/ 22 октября 2018

Я выпустил приложение iOS для пользователя через дистрибутив Adhoc.Пользователь установил приложение, и они могут просматривать файлы, такие как файлы sqlite, изображения, хранящиеся в каталоге документов.Доступ к нему можно получить через сторонние приложения, такие как iExplorer, iMazing.

Вопросы:

1. Можно ли хранить данные в частном каталоге, и это можетк нему не могут получить доступ другие источники или программное обеспечение.

2.Есть ли какая-либо библиотека для шифрования основных данных и которая не должна быть прочитана другими приложениями?

Я пробовал с следующие решения , но это не помогает.

1.Я использовал атрибуты защиты данных - NSFileProtectionComplete и NSFileProtectionCompleteUnlessOpen.Но все же данные доступны для чтения, даже если устройство заблокировано.

2. Я пробовал библиотеку SQLCipher для шифрования данных, но она не поддерживает базовую структуру данных.

Пожалуйста, советуйте испасибо.

1 Ответ

0 голосов
/ 22 октября 2018

Вы должны использовать каталог поддержки приложений для безопасного хранения файлов БД.Вы можете получить путь к этой папке следующим образом:

let appSupportDirURL = FileManager.default.urls(for:.applicationSupportDirectory, in:.userDomainMask).last

Вам необходимо создать этот каталог в do / catch при первом его использовании:

try FileManager.default.createDirectory(at: appSupportDirURL, withIntermediateDirectories: true, attributes: nil)

Теперь добавьтеимя вашего файла БД по этому пути:

let storeURL = appSupportDirURL.appendingPathComponent("MyDatabaseName")

И, наконец, используйте этот URL при вызове addPersistentStore(ofType:configurationName:at:options:) на вашем NSPersistentStoreCoordinator для создания БД на диске.

Я неЯ знаю о каких-либо библиотеках, которые помогут вам зашифровать всю базу данных Core Data, но на самом деле я не думаю, что вам нужно делать это, когда ваш файл DB больше не доступен - по крайней мере, для приложений с обычными требованиями безопасности.

...