Нужна полная защита данных, а основная обработка данных находится в фоновом режиме
-
27-09-2019 - |
Вопрос
Я просто застрял в середине проекта.
Моя цель - Защитите мои данные.
Я прошел через блог Никаррис в отношении (Основные данные и корпоративные приложения для iPhone - защита ваших данных)
Но в заключении четко упоминается, что:
Если ваша заявка нуждается в вашем Основной хранилище данных в любой обработке фона, затем вы не может использовать защиту данных. Отказ Любая попытка получить доступ к файлам, которые NsfileprotectionComplete будет вызывать исключение.
И я использую основные данные в фоновой обработке.
Пожалуйста, помогите по этому поводу. Я хочу шифровать и защищать свои данные в любом случае
Спасибо, тарик
Решение
Согласно документация NSFileProtectionComplete диктует, что файл не может быть прочитан или записан, пока приложение находится в фоновом режиме (или не работает).
Вы должны быть в порядке, чтобы прочитать / написать SQLite Store, пока приложение запущено, однако у вас не будет доступа к нему, пока оно находится на «фоне».
Это означает, что операции, которые используют API в формате IOS, как:
- Всплывающие уведомления
- Фон аудио / местоположение
- Задача задачи (Фон)
- Голос над IP
Не будет иметь доступ к вашему магазину SQLite. Когда приложение работает, однако, вы должны иметь возможность получить доступ к NSPERSISTENTSTORECOODINATOR так, как вы обычно будете. Я подозреваю, что боковой тест устройства приведет к нему созданию координатора постоянного магазина от одного из фоновых API.
Другие советы
На iOS 5 вы можете использовать либо один, но для каждого из них все еще есть улов.
NSFileProtectionCompleteUnlessOpen - файл хранится в зашифрованном формате на диске и должен быть открыт во время разблокировки устройства. После открытия ваш файл может продолжать получать доступ к файлу нормально, даже если пользователь блокирует устройство.
NSFileProtectionCompleteUntilfirstuserateUntication - файл хранится в зашифрованном формате на диске и не может быть доступен до доступа до загрузки устройства. После того, как пользователь разблокирует устройство в первый раз, ваше приложение может получить доступ к файлу и продолжать получать доступ к нему, даже если пользователь впоследствии блокирует устройство.
Источник: Библиотека разработчика iOS
Сделайте ваши вызовы доступа к файлу в главной ните - на NSObject есть действительно полезный метод, который должен помочь вам :)
// When you need to get the data from the file do this :
NSData *data = [self performSelectorInMainThread:@selector(getFileData:) withObject:filename waitUntilDone:YES];
// And somewhere else in your class have this method
- (NSData *)getFileData:(NSString *)filename {
...
// Get data from file and return it
....
}
Надеюсь, это поможет.