macos - 应用程序的 iCloud 驱动器文件夹不显示在 macOS 中
问题描述
我有一个应用程序需要将视频文件存储在 iCloud Drive 中它自己的容器文件夹中。我已经尝试了大多数论坛的建议,但我仍然无法解决这个问题。
这些是我为我的应用程序设置云容器所做的事情 -
添加了 iCloud 功能。为服务选择了“iCloud 文档”并选择了我通过我的开发者帐户创建的适当的 iCloud 容器。
在 Info.plist 中添加了以下条目
<key>NSUbiquitousContainers</key>
<dict>
<key>iCloud.com.TeamName.AppName</key>
<dict>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
<key>NSUbiquitousContainerName</key>
<string>AppName</string>
<key>NSUbiquitousContainerSupportedFolderLevels</key>
<string>Any</string>
</dict>
</dict>
- 这些是权利文件中的值
<key>com.apple.developer.icloud-container-identifiers</key>
<array>
<string>iCloud.com.TeamName.AppName</string>
</array>
<key>com.apple.developer.icloud-services</key>
<array>
<string>CloudDocuments</string>
</array>
<key>com.apple.developer.ubiquity-container-identifiers</key>
<array>
<string>iCloud.com.TeamName.AppName</string>
</array>
已尝试使用新的捆绑标识符和云容器。
已尝试更新版本和构建值
app 文件夹是在“/Users/{user}/Library/Mobile\ Documents/iCloud~com~TeamName~AppName/Documents”创建的,我可以看到我写入的文件。
我也可以在我的 iPhone 上的 iCloud -> Manage Storage -> AppName 找到这些文件。
只有当应用程序在 Appstore 上发布时,“NSUbiquitousContainerIsDocumentScopePublic”才会被接受为 true 吗?或者只是我在这里遗漏了一些东西?
解决方案
同样在这里,我遵循了在这里和其他网站上可以找到的所有提示,但文件夹/文件仍然没有明显显示。
问题:无处不在的容器工作,可以读取和写入文件,但没有显示在 macOS Finder 中,也没有显示在 iOS 设备上的文件应用程序中。macOS 11.5、iOS 14.7、Xcode 12.5.1
我努力了:
- 此处说明的所有内容:https ://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/FileProvider.html
- 此处说明的所有内容:https ://developer.apple.com/library/archive/qa/qa1893/_index.html
- info.plist 值的每个变体
NSUbiquitousContainers
(例如,容器 ID 和我的捆绑包 ID) - info.plist 值的每个变体
NSUbiquitousContainerIsDocumentScopePublic
- info.plist 值的每个变体
NSUbiquitousContainerName
- info.plist 值的每个变体
NSUbiquitousContainerSupportedFolderLevels
- 创建新容器
- 更改应用程序的版本和内部版本号,包括仅增加 CFBundleShortVersionString。
- 更改应用程序的捆绑标识符
- 删除并重新安装应用程序
- 重新启动使用的设备
- 在所有设备上为用户关闭/打开 iCloud 驱动器
这让我快疯了。谁能帮忙?
推荐阅读
- facebook - 从特定地理位置(经纬度)获取 Facebook 用户帖子/状态更新
- linux - 如何使用 docker 映像构建应用程序?
- jquery - jquery 将 href 转为 xlink:href
- asp.net - 命名api路由的最佳实践是什么?
- macos - 使用英特尔编译器创建通用二进制文件
- html - HTML/CSS 背景与其他屏幕尺寸不匹配
- django - django rest 框架“ModuleNotFoundError:没有名为‘路由器’的模块”
- ubuntu - 报告为专有的开源 .deb 包
- typescript - 函数类型 - TypeScript
- python - 使用推导将 Python 字典数组转换为 Python 字典