FxPlug unfindable by FCPX / Motion once moved

I’ve exported a Vuo composition in an FxPlug bundle in order to use it with Final Cut Pro. It works well as is, but here is my problem:

If I move the FxPlug to another directory and launch Final Cut Pro I get a red screen error, this make sense since FCPX cannot locate the FxPlug anymore. Now, if close Final Cut Pro, move the FxPlug back to its original directory and reopen FCPX, I still have the error (the FxPlug cannot be find by Final Cut Pro)…

The only solution I found is to rebuild the FxPlug from Vuo. Why is that, and how can fix this issue without rebuilding the FxPlug?

You may ask, why are you moving the FxPlug in the first place. I try to build an installer to distribute my plugin for other machines.

I’m working on a 2021 M1 Max MacBook Pro on macOS Ventura, using Vuo and Final Cut Pro 10.6.8. I’m exporting the FxPlug wrapper in “/Library/Plug-Ins/FxPlug” (which is the directory recommended by Apple to install FxPlug for FCPX).

I’ve installed the FxNitrate FxPlug bundle from FilmConvert (in the same directory) to compare and the issue doesn’t occurs with this bundle. I can reproduce the steps bellow and manage to get the plugin working.

I really need to find a way to fix the issue since I can’t distribute my plugin with this bug. Let me know if you need any other details, I would be happy to help.

Maybe because of a plug-ins cache that needs to be rebuilt? Have you tried restarting the computer? Audio Unit plug-ins (.component) often (if not always) need the computer to be restarted after install. Maybe something similar is at play here.

1 Like

Restarting my computer did not fix the issue.

I found a really useful documentation from Apple on building an FxPlug. According to the documentation, macOS uses a technology called PlugInKit to discover and register plug-ins on the system.

The terminal command pluginkit -m -p FxPlug returns a list of FxPlugs discovered by PlugInKit. When I run the command after building the FxPlug bundle from Vuo, it returns a list containing my bundle identifier as expected. However, when I move the bundle to another directory, PlugInKit no longer recognizes my bundle, even if I move it back to its original directory.

I assume the problem lies in the discovery step between the XPC (which is the .pluginkit wrapped into the app bundle) and PlugInKit. Apple explains that the Info.plist of the XPC allows the plugin to be recognized as an FxPlug and has shared documentation about editing property lists for FxPlug plug-ins.

I have tried to edit the Info.plist according to this documentation, but I have not found a way to make it work. Maybe one of you guys from the Vuo team or community can help me here.

1 Like

With FxPlug version 2 and prior, you were required to install FxPlugs to the /Library/Plug-Ins/FxPlug folder. With FxPlug 3 and later, macOS is now supposed to find FxPlugs anywhere on the system (except certain special folders like Trash).

But sometimes macOS needs a bit of a kick in order to find plugins. You can do that by double-clicking the plugin app in Finder (it briefly runs then quits) before relaunching Final Cut Pro. Alternatively, you can run these Terminal commands manually or as part of an installer script:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f /Users/me/Desktop/SomePlugin.app

/usr/bin/pluginkit -a /Users/me/Desktop/SomePlugin.app/Contents/PlugIns/SomePlugin.pluginkit

(Note that the first command uses the path to the wrapper app, and the second command uses the path to the inner pluginkit bundle.)

1 Like

Fixed the issue and it seems that I can now move the app bundle wherever without having problems.
Thanks a lot for your quick help!

Do you have any recommendation on how to create an installer for FxPlugs? I’m using a python script for now but not sure if it’s the best way to achieve it.

You could use the pkgbuild and productbuild command-line tools provided by Apple, as described here.

1 Like