Ошибка при использовании FileManager / FileHandle из собственной библиотеки CocoaPod с изображениями Фотогалереи - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть функция класса в моей собственной структуре Cocoapod:

public class FilesTools {
    class func getSizeOfFile(_ path: String) -> UInt64? {
        do {
            let fileAttributes = try FileManager.default.attributesOfItem(atPath: path)
            let fileSize = fileAttributes[.size]
            guard let size = fileSize as? NSNumber else { return nil }
            let int64Size = size.uint64Value
            return int64Size
        } catch {
            print("error: \(error.localizedDescription)")
            return nil
        }
    }
}

Затем я использую ее на симуляторе, все в порядке, но у меня ошибка на реальном устройстве.Я получаю сообщение об ошибке вида:

"error: Error Domain = NSCocoaErrorDomain Code = 257" Не удалось открыть файл «IMG_0001.JPG», так как у вас нет разрешения на его просмотр. "UserInfo = {NSFilePath = / var / mobile / Media / DCIM / 100APPLE / IMG_0001.JPG, NSUnderlyingError = 0x1c0842d00 {Ошибка домена = NSPOSIXErrorDomain Code = 1 «Операция не разрешена»}} "

Также еслиЯ вызываю этот метод из кода приложения, а не из кода фреймворка, он работает нормально.

Конечно, я запрашиваю разрешение у NSPhotoLibraryUsageDescription в моем файле plist.

Я получаю URL файла через такойфункция с использованием PHAsset:

asset.requestContentEditingInput(with: nil) { (input, info) in
        guard let url = input?.fullSizeImageURL else {
            return
        }
     ...
     FilesTools.getSizeOfFile(url.path)
     ...
}

Можно использовать методы FileManager или FileHandle с URL-адресами Photo Gallery из собственных фреймворков / библиотек или решить эту проблему?

...