在开发阶段,我一直在使用iCloud容器而没有问题。 到目前为止,容器应用程序具有默认的NSUbiquitousContainerName,使用该应用程序的捆绑包。
现在,我想为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")
仍然将文档导出到旧文件夹,而不是新文件夹。 我该怎么做才能重命名容器的文件夹?
答案 0 :(得分:0)
我设法解决了创建新容器并使用该容器而不是默认容器的问题。
答案 1 :(得分:0)
如果更改容器名称,则应增加内部版本号。
答案 2 :(得分:0)
我在使用iOS 13时遇到了同样的问题。它似乎缓存了旧的文件夹名称(应用程序图标图像也用作iCloud文件夹图标的覆盖)。
使用已经与旧容器名称一起使用的iCloud帐户时,在plist中更改NSUbiquitousContainerName不会产生影响,但是与iCloud帐户一起使用时我得到了新的文件夹名称(和新的应用程序图标)以前从未连接到应用程序。
即使在新设备上运行应用程序并从iCloud删除旧文件夹时,该缓存仍然存在。