为什么我的 iCloud Drive AppFolder 在 MacOS 上可见,但在 iOS 上的 iCloud Drive App 中被禁用?

Why is my iCloud Drive AppFolder visible on MacOS, but disabled in iCloud Drive App on iOS?

我为我的 iOS 应用程序开发了一个 iCloud Drive 导出功能并且它可以工作。 我可以在 Mac OS X 10.11.

的 iCloud Drive 文件夹中的 public AppContainerFolder 中看到导出的文档

但在 iOS,我只能在 iCloud Drive 应用程序中看到 AppContainerFolder。它已被禁用,我无法打开该文件夹,也无法查看其中的文档。

Image of the disable folder in the iOS iCloud Drive App

从iCloud Drive设置中,我可以看到我导出的文件在iCloud Drive中的AppContainerFolder中。

Image of the AppContainerFolder inside the iCloud settings

有人在使用 iCloud Drive 时遇到过这样的问题吗?

我在我的应用程序中使用了两个应用程序容器,一个带有用于导出的 "iCloud.com..." 标识符,另一个带有用于 Ensembles-CoreData 同步的 "TeamIdentifier.com..." 标识符。 我使用以下方法明确使用容器的 URL:

[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:@"iCloud.com..."]

我已经尝试只使用 TeamIdentifier-Container,但 AppContainerFolder 的可见性没有变化。

我试图改变 BundleVersion,我尝试了 Info.plist NSUbiquitousContainers 设置。我还通过 TestFlight 向外部测试人员提供了构建,以查看它是否与开发设备有关。

我还没有做的唯一一件事是使用新的 BundleVersion 向 AppStore 发布新版本,看看它是否与生产性应用程序和开发中的应用程序有关。

欢迎任何提示和提示。

postWhy my app is not shown in iCloud Drive Folder 似乎表明您的应用需要在 public iCloud 文件夹完全运行之前获得批准和发布。

经过 Apple Developer 技术支持的澄清,我现在能够解决问题。

我的应用程序声明了两个导出的 UTI(自己的备份文件),因此当除这些 UTI 之外的其他文件保存到该文件夹​​中时,iCloud 容器将默认为未启用(或灰显)。 我们的应用程序能够创建 PDF 和 CSV,但这些文件类型未在 info.plist 中声明为 'Document types',因为我们的应用程序无法显示它们。

将 PDF 和 CSV 文档类型添加到 info.plist 时,iCloud 容器会立即在 iCloud Drive 应用程序中可见。

以下是 info.plist:

的摘录供您参考
...
<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array/>
        <key>CFBundleTypeName</key>
        <string>Adobe PDF</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSHandlerRank</key>
        <string>Alternative</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.adobe.pdf</string>
        </array>
    </dict>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array/>
        <key>CFBundleTypeName</key>
        <string>CSV</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSHandlerRank</key>
        <string>Alternative</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.comma-separated-values-text</string>
        </array>
    </dict>
</array>
...