Как запустить приложение FinderSync Extension из кода? - PullRequest
0 голосов
/ 04 мая 2018

Я сделал расширение синхронизации поиска с помощью инструкции .

Отображается в Finder, когда я запускаю его прямо из 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];

Но это тоже не сработало.

Возможно, в настройках проекта есть флажок для этого. но я не увлекаюсь этим.

Также я нашел, вероятно, печальные новости в документации .

После установки расширения приложения пользователь должен принять меры для включения Это. Часто пользователи могут включить расширение в контексте своих текущее задание Если ваше расширение является виджетом Сегодня, например, пользователи можно изменить представление «Сегодня» в Центре уведомлений, чтобы включить расширение. В других случаях пользователи могут использовать Настройки (в iOS) или Систему Настройки (в macOS) для включения и управления расширениями, которые они установка.

1 Ответ

0 голосов
/ 28 февраля 2019

Используйте int system(const char *) вместо NSTask.

    system("pluginkit -e use -i com.team.AppName.FinderSyncExtension");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...