2

我使用指令制作了查找器同步扩展。

当我直接从 Xcode 启动它时,它会显示在 finder 中。但是当我运行主应用程序时它不可见。沙盒应用程序有什么办法吗?在非沙盒应用程序中,我使用了代码:

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 中)来启用和管理他们安装的扩展。

4

1 回答 1

-1

使用int system(const char *)而不是NSTask.

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