【发布时间】:2020-05-04 19:17:16
【问题描述】:
我正在使用 UIDocuments 和 iCloud。我成功地将文件写入 iCloud,但在设备和文件应用程序上看不到。
我在 info.plist 中有以下内容。
<key>NSUbiquitousContainers</key>
<dict>
<key>iCloud.myAppName</key>
<dict>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
<key>NSUbiquitousContainerName</key>
<string>myAppName</string>
<key>NSUbiquitousContainerSupportedFolderLevels</key>
<string>Any</string>
</dict>
</dict>
在我的代码中,我可以创建目录,然后编写文件。
var containerUrl: URL? {
return FileManager.default.url(forUbiquityContainerIdentifier: nil)?.appendingPathComponent("myAppName")
}
let url = containerUrl?.appendingPathComponent("fileName.fileType")
print("url: \(url)")
打印返回:
file:///private/var/mobile/Library/Mobile%20Documents/iCloud~myAppName/myAppName/fileName.fileType
我可以测试并看到文件是用如下代码写出的:
let boolTest: Bool = !FileManager.default.fileExists(atPath: testUrl!.path, isDirectory: nil)
print("!file exist: \(boolTest)")
在 iCloud 下我的 Target 的“Signing & Capabilities”选项卡中,我点击了“iCloud Documents”并有一个名为 iCloud.myAppName 的容器分配给我的团队。 (注意:还有另外两个勾选“Key-value storage”和“CloudKit”,这两种方式我都试过了,我认为应该不勾选。)
无论如何,一切似乎都运行良好。我可以通过fileExist看到它是写的。但是,我看不到文件应用程序中的文档或通过应用程序提取文档。仅设备上的文档。
在这一点上,我不确定我错过了什么。我也不知道如何调试它。
【问题讨论】:
-
我也有同样的问题?解决方案是什么?
-
从来没有解决过。导致我意识到我无法完成我想做的事情的众多问题之一(也许是为什么很少有应用程序可以做到这一点)。我继续做其他事情。
标签: swift icloud uidocument