Я работаю над ios-приложением, которое использует функцию репликации couchbase-lite. Эта репликация начинается с фоновой выборки. После нескольких тестов на реальном устройстве, кажется, работает, но когда я пытаюсь запустить эту репликацию на заблокированном устройстве есть ошибки как этотОшибка репликации ios couchbase-lite
Failed to Load DB 'DBNAME': Error Domain=SQLite Code=23 "authorization denied" UserInfo={NSLocalizedDescription=authorization denied}
error opening!: 23
Когда я запустить приложение, я выполните следующие действия, чтобы создать менеджер
var error:NSError?
let options:CBLManagerOptions = CBLManagerOptions(readOnly: false, fileProtection: NSDataWritingOptions.DataWritingFileProtectionCompleteUntilFirstUserAuthentication)
let poptions:UnsafePointer<CBLManagerOptions> = UnsafePointer<CBLManagerOptions>.init(UnsafeMutablePointer<CBLManagerOptions>.alloc(1).initialize(options))
manager = CBLManager(directory: CBLManager.defaultDirectory(), options: poptions, error: &error)
Любые идеи по устранению этой проблемы? Эта ошибка появляется только в том случае, если iphone заблокирован!
Спасибо.
Является ли ваши данные за логин? Что произойдет, если вы удалите учетные данные для входа и только что это будет открытая база данных на устройстве блокировки? – sweetiewill
Да, это из-за этого пароля. Но он также должен работать в фоновом режиме и с помощью этого пароля. Кажется, что ios блокирует доступ к данным, когда устройство заблокировано:/ – Lukas
Это связано с iOS Data Protection (https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AddingCapabilities/ AddingCapabilities.html). В основном, когда вы блокируете устройство, файлы шифруются, а база данных не может быть прочитана или записана. – borrrden