The symptom of failure is that the extension is active in the System Plugin Settings panel, but there is no expected response that the plugin has executed.
For example, add the following sample code to the plugin
- (instancetype)init {
// Set up the directory we are syncing.
self.myFolderURL = [NSURL fileURLWithPath:@"/"];
// ......
return self;
}
- (NSMenu *)menuForMenuKind:(FIMenuKind)whichMenu {
NSMenu *menu = [[NSMenu alloc] initWithTitle:@""];
[menu addItemWithTitle:@"Test" action:@selector(testAction:) keyEquivalent:@""];
return menu;
}
This method expects the finder's file context menu to have an extra option "Test", which is fine on macOS 14, but when I packaged the program for 10.15 no option appeared. I don't know how to know if the plugin is currently activated or running. So I'll try to try to see if it agrees with the normal situation by executing the plugin binary. (And it did run differently than the normal situation)
This problem was able to be reproduced even with the simplest demo I could find, but unfortunately I can't upload the zip file of the project here.
I can briefly describe how to build this simple demo:
In MacOS 14.4
Create a new app project using the following parameters
Add a new Target and select Add Finder Sync Extension, using the following parameters
Use the default code, or change it to the above code.
Modify the minimum supported MacOS version to 10.15.
Compile and run it in macOS 14.4 (remember to activate the extension in the Extensions panel of the System Settings), you can see that the plugin is working properly!
Compile the program in macOS 14.4, send it to macOS 10.15 and run the program. Activate the extension in the Extensions panel of the System Settings, but at this point you will see that the extension is not working, even though you activated the extension.
Topic:
App & System Services
SubTopic:
General
Tags: