Доступ к содержимому SKDownload после обработки покупки в приложении с помощью SKPaymentQueue

Я пытался получить доступ к загруженному SKDownload zip-файл после успешной покупки в приложении как таковой:

func paymentQueue(_ queue: SKPaymentQueue, updatedDownloads downloads: [SKDownload]) {
  downloads.forEach ({ (download) -> Void in
     switch download.state {
        ...
        case .finished:
           self.processDownload(download: download)
           ...
           break

        ...
    })
}

Вот функция, которая обрабатывает загруженные SKDownload файл:

func procesessDownload(download: SKDownload) {
    guard let hostedContentPath = download.contentURL else {
        return
    }

    do {
        // THIS LINE OF CODE THROWS WITH THE ERROR POSTED BELOW
        let files = try FileManager.default.contentsOfDirectory(atPath: hostedContentPath.relativePath)

    } catch {
        //catch error
    }
}

Когда я проверяю download.contentURL это там:

file:///private/var/mobile/Containers/Data/Application/D755EC3C-2BA6-43A8-BB21-938B38EBFCB7/Library/Caches/EB11461D-71C8-42C7-9C99-E6F8B81161EE.zip/
  - _url : file:///private/var/mobile/Containers/Data/Application/D755EC3C-2BA6-43A8-BB21-938B38EBFCB7/Library/Caches/EB11461D-71C8-42C7-9C99-E6F8B81161EE.zip/

Но при попытке получить доступ к файлу с помощью FileManager используя эту строку кода выше:

let files = try FileManager.default.contentsOfDirectory(atPath: hostedContentPath.relativePath)

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

Error Domain=NSCocoaErrorDomain Code=260 "The file “EB11461D-71C8-42C7-9C99-E6F8B81161EE.zip” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/private/var/mobile/Containers/Data/Application/D755EC3C-2BA6-43A8-BB21-938B38EBFCB7/Library/Caches/EB11461D-71C8-42C7-9C99-E6F8B81161EE.zip, NSUnderlyingError=0x28320d500 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}

  • Я пробовал добавить / в конце обрабатывать zip-файл как каталог и многое другое безрезультатно.

  • Я даже попытался получить доступ к каталогу, содержащему этот файл (до zip-файла):

/private/var/mobile/Containers/Data/Application/D755EC3C-2BA6-43A8-BB21-938B38EBFCB7/Library/Caches/

Ошибка говорит, что каталог "Caches" не найден.

  • Я также пробовал добавить "Contents" к пути, как один из примеров кодов, которые я нашел случайным человеком.

Я бился головой больше дня и не мог найти никакой документации по этому поводу. Любая помощь будет принята с благодарностью, спасибо!

0 ответов

Другие вопросы по тегам