我无权写入 iCloud 文件夹
Posted
技术标签:
【中文标题】我无权写入 iCloud 文件夹【英文标题】:I do not have permission to write into iCloud folder 【发布时间】:2017-12-21 14:01:56 【问题描述】:我正在尝试将文件写入 ubiquitous 文件夹,我可以运行查询并且一切正常,我看到了文件,但是如果我尝试设置本地文件,我会收到此错误:
Error Domain=NSCocoaErrorDomain Code=513 "“video.mp4” couldn’t be moved because you don’t have permission to access “DemoExample”." UserInfo=NSSourceFilePathErrorKey=/var/containers/Bundle/Application/3C3DC6B5-7B22-4B1C-B8AB-187F640F68AB/DemoExample.app/video.mp4, NSUserStringVariant=(
Move
), NSDestinationFilePath=/private/var/mobile/Library/Mobile Documents/iCloud~com~Test~DemoExample/Documents/video.mp4, NSFilePath=/var/containers/Bundle/Application/3C3DC6B5-7B22-4B1C-B8AB-187F640F68AB/DemoExample.app/video.mp4, NSUnderlyingError=0x17405c5c0 Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"
文件夹中存在Video.mp4,有什么问题?
这是保存文件的代码:
try self.fileManager.setUbiquitous(true, itemAt: URL.init(fileURLWithPath:file.path), destinationURL: iCloudUrl)
我用这个:
<key>NSUbiquitousContainers</key>
<dict>
<key>iCloud.com.Test.DemoExample</key>
<dict>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
<key>NSUbiquitousContainerName</key>
<string>backup</string>
<key>NSUbiquitousContainerSupportedFolderLevels</key>
<string>Any</string>
</dict>
【问题讨论】:
您误解了@aeger 的评论(或者他们没有很好地解释)。答案属于答案,而不是问题。您在答案中发布自己的解决方案是正确的。总结:不要在问题中发布答案,也不要在答案中发布问题。问题属于问题,答案属于答案——仅此而已。 :) 【参考方案1】:请按照以下步骤一一进行。希望它能解决你的问题....
-
从 XCode 设置区域下的 Capabilities 启用 iCloud。
-
通过启用 iCloud 更新您的 AppID 和配置文件。
-
在 info.plist 中添加以下属性。
<key>NSUbiquitousContainers</key> <dict> <key>iCloud.YOUR_BUNDLE_IDENTIFIER</key> <dict> <key>NSUbiquitousContainerIsDocumentScopePublic</key> <true/> <key>NSUbiquitousContainerSupportedFolderLevels</key> <string>Any</string> <key>NSUbiquitousContainerName</key> <string>iCloudDriveDemo</string> </dict> </dict>
-
iCloud.YOUR_BUNDLE_IDENTIFIER 在这里非常重要。例如,您的包标识符是“com.emraz.myapp”。然后你必须使用“iCloud.com.emraz.myapp”
【讨论】:
【参考方案2】:这是我的解决方案(@emraz 对我不起作用):
-
在所有设备上卸载该应用
删除 Files.app 中的文件夹
(ios)(如果可见)。
删除与
来自 ~/Library/Application 的应用程序
支持/CloudDocs/会话/容器
删除与
来自 ~/Library/Mobile\ Documents/ 的应用程序
几分钟后重启
删除您在 XCode 中使用的方案
重新添加一个新的方案(同名即可)
【讨论】:
以上是关于我无权写入 iCloud 文件夹的主要内容,如果未能解决你的问题,请参考以下文章