将 iCloud Drive 读入 iOS,写入 iCloud Drive,使其在 Mac 上可见
Read iCloud Drive into iOS, write to iCloud Drive so it is visible on Mac
我正在努力完成以下任务:
- 使用 Mac 从 iCloud 驱动器中读取一个 .csv 文件。这适用于 UIDocumentPickerViewController。
- 处理 iOS 中的文件 - 这工作正常
- 在 iCloud 驱动器中为我的应用程序创建文档目录,这样它就可以从 Mac 中看到 - 不工作
- Write/Save 将处理后的文件输出到 UbiquityContainer,以便它在 Mac 上可见。 - 不工作。
我有这个设置来创建文档目录。
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
if let iCloudDocumentsURL = FileManager.default.url(forUbiquityContainerIdentifier: nil)?.appendingPathComponent("Documents") {
if (!FileManager.default.fileExists(atPath: iCloudDocumentsURL.path, isDirectory: nil)) {
do {
try FileManager.default.createDirectory(at: iCloudDocumentsURL, withIntermediateDirectories: true, attributes: nil)
print("Created Directory at \(iCloudDocumentsURL)")
} catch {
print("Error Creating Directory: \(error)")
}
}
print("\(#function):\(#line) iCloudDocumentsURL =\n\(iCloudDocumentsURL)")
self.iCloudDocumentsURL = iCloudDocumentsURL
}
我已经打开了权利和一个 plist 条目如下:
<dict>
<key>iCloud.com.mycompany.SubLunch</key>
<dict>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
<key>NSUbiquitousContainerName</key>
<string>SubLunch</string>
<key>NSUbiquitousContainerSupportedFolderLevels</key>
<string>One</string>
</dict>
我可以看到文件正在此处写入:
file:///private/var/mobile/Library/Mobile%20Documents/iCloud~com~mycompany~SubLunch/Documents/LRA%20Order%20Detail%20Results.csv
但我的 Mac.
上的 iCloud Drive 没有任何变化
我已经用brctl log --wait --shorten
查看了activity,我可以看到输出。
我做错了什么?
提前致谢
我找到了答案,您需要在完成修改后将文件导出到服务器。然后你会得到文档选择器,让你选择在 iCould Drive 中的存储位置。
我正在努力完成以下任务:
- 使用 Mac 从 iCloud 驱动器中读取一个 .csv 文件。这适用于 UIDocumentPickerViewController。
- 处理 iOS 中的文件 - 这工作正常
- 在 iCloud 驱动器中为我的应用程序创建文档目录,这样它就可以从 Mac 中看到 - 不工作
- Write/Save 将处理后的文件输出到 UbiquityContainer,以便它在 Mac 上可见。 - 不工作。
我有这个设置来创建文档目录。
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
if let iCloudDocumentsURL = FileManager.default.url(forUbiquityContainerIdentifier: nil)?.appendingPathComponent("Documents") {
if (!FileManager.default.fileExists(atPath: iCloudDocumentsURL.path, isDirectory: nil)) {
do {
try FileManager.default.createDirectory(at: iCloudDocumentsURL, withIntermediateDirectories: true, attributes: nil)
print("Created Directory at \(iCloudDocumentsURL)")
} catch {
print("Error Creating Directory: \(error)")
}
}
print("\(#function):\(#line) iCloudDocumentsURL =\n\(iCloudDocumentsURL)")
self.iCloudDocumentsURL = iCloudDocumentsURL
}
我已经打开了权利和一个 plist 条目如下:
<dict>
<key>iCloud.com.mycompany.SubLunch</key>
<dict>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
<key>NSUbiquitousContainerName</key>
<string>SubLunch</string>
<key>NSUbiquitousContainerSupportedFolderLevels</key>
<string>One</string>
</dict>
我可以看到文件正在此处写入:
file:///private/var/mobile/Library/Mobile%20Documents/iCloud~com~mycompany~SubLunch/Documents/LRA%20Order%20Detail%20Results.csv
但我的 Mac.
上的 iCloud Drive 没有任何变化我已经用brctl log --wait --shorten
查看了activity,我可以看到输出。
我做错了什么?
提前致谢
我找到了答案,您需要在完成修改后将文件导出到服务器。然后你会得到文档选择器,让你选择在 iCould Drive 中的存储位置。