14

我正在尝试为我的应用程序实现文档提供程序扩展,以允许在应用程序之间导入/导出/移动文件。

我已经创建了我的主应用程序并将文档提供程序和文件提供程序扩展添加到项目中,检查它们是否都构成每个目标功能中相同应用程序组标识符的一部分。

文档提供程序目标的信息 plist 具有以下设置:

<dict>
    <key>NSExtensionAttributes</key>
    <dict>
        <key>UIDocumentPickerModes</key>
        <array>
            <string>UIDocumentPickerModeImport</string>
            <string>UIDocumentPickerModeExportToService</string>
            <string>UIDocumentPickerModeMoveToService</string>
        </array>
        <key>UIDocumentPickerSupportedFileTypes</key>
        <array>
            <string>public.content</string>
        </array>
    </dict>
    <key>NSExtensionMainStoryboard</key>
    <string>Main</string>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.fileprovider-ui</string>
</dict>

虽然文件提供程序的 info.plist 具有以下内容:

<dict>
    <key>NSExtensionFileProviderDocumentGroup</key>
    <string>group.com.myAppGroupId</string>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.fileprovider-nonui</string>
    <key>NSExtensionPrincipalClass</key>
    <string>$(PRODUCT_MODULE_NAME).FileProvider</string>
</dict>

我正在使用创建目标时生成的 UIDocumentPickerExtensionViewController 子类和 NSFileProviderExtension 子类的默认实现,并且我在每个方法中都放置了断点以测试它们是否正确运行。

但是,当我尝试运行 Document Provider 时,我的应用程序无法显示在可用于共享文档的应用程序列表中。我已经用我的设备和模拟器对此进行了测试,选择 iPhoto 和 Pages 作为主机应用程序。

我在这里错过了什么吗?

4

1 回答 1

2

请确保您的应用程序组 contianer 与为您的文件提供者的 info.plist 编写的相同

<key>NSExtensionFileProviderDocumentGroup</key>
<string>group.com.myAppGroupId</string>

这发生在我身上,但是当我将其更改为上面正确的应用程序组名称时,选择器开始工作。

谢谢,

电压

于 2015-02-17T12:45:38.997 回答