ios – 无法测试文档提供程序扩展

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

我创建了我的主要应用程序,并将文档提供程序和文件提供程序扩展添加到项目中,检查它们是否在每个目标的Capabilities中都构成同一个App Group Identifier的一部分.

文档提供商目标的信息标注具有以下设置:

<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子类的认实现,并且我在每个方法中都设置了断点来测试它们是否正常运行.

但是,当我尝试运行文档提供程序时,我无法将我的应用程序显示在可用于共享文档的应用程序列表中.我已经通过我的设备和模拟器测试了这一点,选择iPhoto和Pages作为主机应用程序.

在这里遗漏了什么吗?

解决方法

请确保您的应用程序组contianer与为文件提供商的info.plist编写的一样
<key>NSExtensionFileProviderDocumentGroup</key>
<string>group.com.myAppGroupId</string>

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

谢谢,

VSH

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...