swift - 使用 SKPaymentQueue 处理应用内购买后访问 SKDownload 的内容
问题描述
在成功进行应用内购买后,我一直在尝试访问下载的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/
错误说找不到“缓存”目录。
- 我还尝试
"Contents"
像随机人找到的示例代码之一一样添加到路径中。
我已经连续敲了一天多的头,但找不到任何关于此事的文件。任何帮助将不胜感激,谢谢!
解决方案
推荐阅读
- firebase - 从 Firestore 的集合中获取多个特定数据的最佳方法是什么?
- html - iFrame 不显示 PDF 页面
- performance - 如何使用 pyspark 提高 csv 到 parquet 文件格式的性能?
- django - 在 django 中使用 scss:scss 在 CACHE “应用”中编译成 css,但默认情况下“覆盖”引导主题
- ios - UIStackView 中的按钮不可点击
- java - (Java) 字符 'é' 在 JTextArea 中显示错误
- javascript - PWA 工作箱后台同步队列请求队列对象可访问性
- php - 如何在 woo commerce 的结帐表单字段中删除额外的 div html 类
- java - Selenium 问题:过时的元素参考:元素未附加到页面文档 - 单击预期文本后
- amazon-web-services - AWS 上的 lambda 间通信,无需轮询