Тестирование авторизации файловой системы не работает для защищенных папок под MacOS Catalina - PullRequest
0 голосов
/ 08 ноября 2019

Согласно WWDC 701 «Достижения в области безопасности macOS», Apple предлагает использовать FileManager.default.isReadableFile, FileManager.default.isWritableFile для проверки авторизации файловой системы. Но эти API всегда возвращают true, и мы всегда можем удалить файлы в папке, независимо от того, позволяет ли пользователь приложению получать доступ к этим папкам или нет.

Ниже приведен код и явления

let path = "/Users/xxx/Documents"
let file = "/Users/xxx/Documents/1.png"
let isReadable = FileManager.default.isReadableFile(atPath: file) //return true
let isWritable = FileManager.default.isWritableFile(atPath: file) //return true
try? FileManager.default.removeItem(atPath: file) // file will be deleted
guard let files = try? FileManager.default.contentsOfDirectory(atPath: path) else {
            return
} //This will trigger user consent prompt for the first time

Файл в защищенной папке может быть удален до авторизации. Это ошибка Apple?

...