【问题标题】:I can write iCloud Documents, but cannot see them我可以编写 iCloud 文档,但看不到它们
【发布时间】: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


【解决方案1】:

将它们保存在云容器的Documents 文件夹中。不用加.appendingPathComponent("myAppName")

【讨论】:

    猜你喜欢
    • 2020-09-06
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 2021-02-21
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    相关资源
    最近更新 更多