У меня нет разрешения на запись в папку iCloud

Я пытаюсь записать файл в вездесущую папку, я могу выполнить запрос, и все работает нормально, я вижу файлы, но если я пытаюсь установить локальный файл, я получаю эту ошибку:

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 ответа

Пожалуйста, следуйте приведенным ниже шагам один за другим. Надеюсь, это решит вашу проблему....

  1. Включите iCloud из возможностей в области настроек XCode.

введите описание изображения здесь

  1. Обновите свой AppID и профиль обеспечения, включив iCloud.

введите описание изображения здесь

  1. Добавьте ниже свойство в ваш 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>
  1. iCloud.YOUR_BUNDLE_IDENTIFIER здесь очень важен. Например, ваш идентификатор пакета - "com.emraz.myapp". Тогда вы должны использовать "iCloud.com.emraz.myapp"

Вот мое решение (@emraz у меня не сработало):

  1. Удалите приложение на всех устройствах
  2. Удалите папку в Files.app(iOS), если она видна.
  3. Удалите все папки, связанные с приложением, из ~ / Library / Application Support / CloudDocs / session / container.
  4. Удалите все папки, связанные с приложением, из ~ / Library / Mobile \ Documents /
  5. Перезагрузитесь через несколько минут
  6. Удалите схему, которую вы используете в XCode
  7. Добавить новую схему (можно с таким же именем)
Другие вопросы по тегам