iOS — изменить имя контейнера iCloud

Я без проблем использовал контейнер iCloud на этапе разработки. Приложение-контейнер до сих пор имело NSUbiquitousContainerName по умолчанию, используя пакет if приложения.

Теперь я хотел бы иметь более понятное имя для папки, появляющейся в iCloud Drive, поэтому я изменил значение NSUbiquitousContainerName на имя моего приложения.

<key>NSUbiquitousContainers</key>
<dict>
    <key>container-id</key>
    <dict>
        <key>NSUbiquitousContainerIsDocumentScopePublic</key>
        <true/>
        <key>NSUbiquitousContainerName</key>
        <string>AppName</string>
        <key>NSUbiquitousContainerSupportedFolderLevels</key>
        <string>Any</string>
    </dict>
</dict>

Затем я увеличил номер сборки и запустил приложение. Я использовал следующую папку для экспорта документов:

FileManager.default.url(forUbiquityContainerIdentifier: nil)?.appendingPathComponent("Documents")

И все равно документы экспортируются в старую папку, а не в новую. Что мне делать, чтобы переименовать папку контейнера?


person crom87    schedule 10.03.2019    source источник


Ответы (3)


Если изменить имя контейнера, вы должны увеличить номер сборки.

person frogcjn    schedule 21.06.2019

Мне удалось решить проблему, создав новый контейнер и используя его вместо контейнера по умолчанию.

person crom87    schedule 10.03.2019

У меня была та же проблема с iOS 13. Похоже, что старое имя папки кэшируется (как и изображение значка приложения, используемое в качестве наложения на значок папки iCloud).

Изменение NSUbiquitousContainerName в plist не повлияло на использование учетной записи iCloud, которую я уже использовал со старым именем контейнера, но я получил новое имя папки (и новый значок приложения) при использовании с учетной записью iCloud, которая никогда не использовалась. до подключения к приложению.

Это кэширование сохранялось даже при запуске приложения на новом устройстве и удалении старой папки из iCloud.

person Mike Kaufman    schedule 18.04.2020
comment
Добро пожаловать, @Mike Kaufman на StackOverflow! Большое спасибо за предоставленную информацию. Однако ваш ответ не решает проблему. Было бы здорово, если бы вы разместили ответ. Дополнительные сведения см. на странице stackoverflow.com/help/how-to-answer. - person Rajan; 18.04.2020