Нужна полная защита данных, а основная обработка данных находится в фоновом режиме

StackOverflow https://stackoverflow.com/questions/4242977

Вопрос

Я просто застрял в середине проекта.

Моя цель - Защитите мои данные.

Я прошел через блог Никаррис в отношении (Основные данные и корпоративные приложения для iPhone - защита ваших данных)

Но в заключении четко упоминается, что:

Если ваша заявка нуждается в вашем Основной хранилище данных в любой обработке фона, затем вы не может использовать защиту данных. Отказ Любая попытка получить доступ к файлам, которые NsfileprotectionComplete будет вызывать исключение.

И я использую основные данные в фоновой обработке.

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

Спасибо, тарик

Это было полезно?

Решение

Согласно документация NSFileProtectionComplete диктует, что файл не может быть прочитан или записан, пока приложение находится в фоновом режиме (или не работает).

Вы должны быть в порядке, чтобы прочитать / написать SQLite Store, пока приложение запущено, однако у вас не будет доступа к нему, пока оно находится на «фоне».

Это означает, что операции, которые используют API в формате IOS, как:

  • Всплывающие уведомления
  • Фон аудио / местоположение
  • Задача задачи (Фон)
  • Голос над IP

Не будет иметь доступ к вашему магазину SQLite. Когда приложение работает, однако, вы должны иметь возможность получить доступ к NSPERSISTENTSTORECOODINATOR так, как вы обычно будете. Я подозреваю, что боковой тест устройства приведет к нему созданию координатора постоянного магазина от одного из фоновых API.

Другие советы

На iOS 5 вы можете использовать либо один, но для каждого из них все еще есть улов.

  1. NSFileProtectionCompleteUnlessOpen - файл хранится в зашифрованном формате на диске и должен быть открыт во время разблокировки устройства. После открытия ваш файл может продолжать получать доступ к файлу нормально, даже если пользователь блокирует устройство.

  2. 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
    ....
}

Надеюсь, это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top