Файлы из iCloud в документы не читаются на других устройствах - PullRequest
0 голосов
/ 27 октября 2018

Я синхронизирую iCloud Drive и локальное хранилище (папка «Документы») в моем приложении.Но есть 1 ошибка.

1) устройство 1 (или 2) -> копировать файлы из документов в контейнер iCloud

2) устройство 1 (или 2) -> читать файлы из контейнера iCloudк документам - все хорошо.

Но:

1) устройство 1 -> копировать файлы из документов в контейнер iCloud

2) устройство 2 -> копировать файлы из контейнера iCloudДокументам - а вот баг.Все файлы обычно копировались, но они повреждены, и я не могу открыть их в Документах (но вижу их).

На приведенном ниже экране 1 и 3 файла были созданы на текущем устройстве, а 2, 4 и 5 файлов были созданы на другом устройстве и были синхронизированы с контейнером iCloud.И еще: обычно размер файла (1 и 3) - 32 КБ, битых файлов - 2 КБ.

enter image description here

enter image description here

Мой код (я использую эту функцию для копирования из документов в iCloud идля копирования из iCloud в документы):

    private static func copyFilesFrom(url: URL, toURL: URL, folder: String) {

    let fileManager = FileManager.default

    do {

        let newDir = toURL.appendingPathComponent(folder)
        if !fileManager.fileExists(atPath: newDir.absoluteString) {

            try fileManager.createDirectory(at: newDir,
                                            withIntermediateDirectories: true,
                                            attributes: nil)

        } else {
            print("Already created catalog with folder: \(folder)")
        }

        let dirs = try fileManager.contentsOfDirectory(atPath: url.appendingPathComponent(folder).path)

        for dir in dirs {
            do {
                try fileManager.copyItem(at: url.appendingPathComponent(folder).appendingPathComponent(dir),
                                         to: newDir.appendingPathComponent(dir))
            } catch {
                print(error)
            }
        }
    } catch {
        print(error)
    }
}
...