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 サブクラスの両方にデフォルトの実装を使用しており、すべてのメソッドにブレークポイントを配置して、それらが適切に実行されることをテストしています。

しかし、ドキュメント プロバイダーを実行しようとすると、ドキュメントの共有に使用できるアプリのリストに自分のアプリが表示されません。ホスト アプリとして iPhoto と Pages の両方を選択して、デバイスとシミュレーターの両方でこれをテストしました。

ここで何か不足していますか?

4

1 に答える 1

2

アプリ グループの contianer が、ファイル プロバイダーの info.plist 用に記述されたものと同じであることを確認してください。

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

これは私に起こりましたが、上記の適切なアプリ グループ名に変更すると、ピッカーが機能し始めました。

ありがとう、

Vsh

于 2015-02-17T12:45:38.997 に答える