我无权写入iCloud文件夹

时间:2017-12-21 14:01:56

标签: ios swift icloud-drive icloud-documents

我正在尝试将文件写入无处不在的文件夹,我可以运行查询,一切正常,我看到文件,但如果我尝试设置本地文件,我会收到此错误:

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>

2 个答案:

答案 0 :(得分:0)

请逐一按照以下步骤操作。希望它能解决你的问题......

  1. 从XCode设置区域下的功能启用iCloud。
  2. enter image description here

    1. 启用iCloud更新您的AppID和配置文件。
    2. enter image description here

      1. 在info.plist中添加以下属性。
      2. <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>
        
        1. iCloud.YOUR_BUNDLE_IDENTIFIER非常重要。例如,您的包标识符是“com.emraz.myapp”。然后你必须使用“iCloud.com.emraz.myapp”

答案 1 :(得分:0)

这是我的解决方案(@emraz 对我不起作用):

  1. 在所有设备上卸载该应用
  2. 删除 Files.app 中的文件夹 (iOS) 如果可见。
  3. 删除与该文件夹相关的所有文件夹 来自 ~/Library/Application 的应用程序 支持/CloudDocs/session/containers
  4. 删除所有相关文件夹 应用程序来自 ~/Library/Mobile\ Documents/
  5. 几分钟后重新启动
  6. 删除您在 XCode 中使用的 Scheme
  7. 重新添加一个新的 Scheme(同名即可)