11

シンプルなCocoa画像プレビューアプリがあります。ユーザーがを使用してファイルを選択するNSOpenPanelと、アプリはQuickLookAPIを使用してプレビュー画像を生成します。

プレビュー生成を別のXPCサービスに移動したいと思います。アプリのサンドボックス化がないと、すべてが正常に機能しますが、親アプリとXPCサービスのアプリのサンドボックス化を有効にすると、XPCサービスはユーザーが選択したファイルへの読み取りアクセスを拒否されます

親アプリはファイルの読み取りを許可されます(NSOpenPanelを介して選択されたため)。

ユーザーが選択したファイルの「ファイル読み取り」権限を親アプリからXPCプロセスに転送して、XPCプロセスがファイルを読み取ってプレビューを生成できるようにするにはどうすればよいですか?

XPCサービスがその資格を介してファイル読み取りアクセスを要求し、XPC Service Info.plistに次のキーを追加しましたが、それは役に立ちませんでした。

JoinExistingSession = YES
4

1 に答える 1

11

100%確信はありませんがNSFileHandle、この場合、AppleはXPCプロセスにを渡すことをお勧めします。このようにして、XPCプロセスはファイルの内容にアクセスできますが、ファイルのURLを知る必要はありません。

編集:AppleDeveloperForumsのこのスレッドは役に立ちます。ファイルのURLに対して通常の(セキュリティスコープではない)ブックマークを作成することをお勧めします。次に、このブックマークをXPCプロセスに渡して、XPCプロセスからアクセスできます。

于 2012-07-06T11:12:45.420 に答える