我使用instruction进行了查找器同步扩展。
当我直接从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];
但它也没有用。
项目设置中可能有一些复选框可以执行此操作。但我并不喜欢它。
此外,我在documentation发现了可能令人遗憾的消息。
安装应用扩展程序后,用户必须采取措施才能启用 它。通常,用户可以在其上下文中启用扩展 当前的任务。如果您的扩展程序是“今日”窗口小部件,例如用户 可以编辑通知中心中的今日视图以启用您的 延期。在其他情况下,用户可以使用“设置”(在iOS中)或“系统” 首选项(在macOS中)以启用和管理它们的扩展 安装。
答案 0 :(得分:-1)
使用int system(const char *)
代替NSTask
。
system("pluginkit -e use -i com.team.AppName.FinderSyncExtension");