2

命令を使用してファインダー同期拡張を作成しました。

Xcodeから直接起動するとファインダーに表示されます。しかし、メインアプリを実行すると表示されません。サンドボックスアプリでそれを行う方法はありますか? サンドボックス化されていないアプリでは、次のコードを使用しました。

NSTask *fseEnable = [[NSTask alloc] init];
fseEnable.launchPath = @"/usr/bin/pluginkit";
fseEnable.arguments = @[@"-e", @"use", @"-i", @"com.team.AppName.FinderSyncExtension"];

[fseEnable launch];

ただし、サンドボックスでは機能しません。私は試した:

[[NSWorkspace sharedWorkspace] launchAppWithBundleIdentifier:@"com.team.AppName.FinderSyncExtension" options:NSWorkspaceLaunchDefault additionalEventParamDescriptor:nil launchIdentifier:nil];

しかし、それも機能しませんでした。

おそらく、プロジェクト設定にそれを行うためのチェックボックスがいくつかあります。しかし、私はそれが好きではありません。

また、ドキュメンテーションでおそらく悲しいニュースを見つけました。

アプリ拡張機能をインストールした後、ユーザーはそれを有効にするためのアクションを実行する必要があります。多くの場合、ユーザーは現在のタスクのコンテキスト内で拡張機能を有効にできます。たとえば、拡張機能が Today ウィジェットの場合、ユーザーは通知センターの Today ビューを編集して、拡張機能を有効にすることができます。それ以外の場合、ユーザーは設定 (iOS の場合) またはシステム環境設定 (macOS の場合) を使用して、インストールした拡張機能を有効にして管理できます。

4

1 に答える 1

-1

int system(const char *)の代わりに使用しNSTaskます。

system("pluginkit -e use -i com.team.AppName.FinderSyncExtension");
于 2019-02-28T10:24:32.297 に答える