Distributing Software via FxFactory

FxFactory serves the dual purpose of development tool and distribution platform. In addition to its rapid-development tool chain for native plug-ins, Motion Templates and 3D Text Styles, FxFactory also supports the distribution and purchase of existing third-party apps and plugins. These products rely on FxFactory only for the purpose of checking licensing status, installing updates to the product and initiating transactions through our online store:

Third-party products distributed with FxFactory enjoy the same benefits as products built using our own tool chain:

  • Products are advertised on our website and inside our app for easy installation, purchasing and automatic updates.
  • Products can be purchased using our account-based system, becoming part of the purchase history so that they are automatically restored when the account signs in.
  • Product information can be changed dynamically on our servers and pushed to end-users (pricing, download links, version info, requirements, etc.)
  • APIs provided by the FxFactory Framework make it incredibly easy to leverage our existing infrastructure for the installation and updating of your products, and handling tech support inquiries.

Basic Requirements to Distribute Products

FxFactory interfaces with an external product through its designated bundle. Although the product may include any combination of applications, plug-ins and assets, FxFactory will only look for the designated bundle when trying to determine if the product is currently available on the system.

Developers have often provided and designated a standard macOS application as the main bundle to get their product to be recognized by FxFactory. This fits well with PlugInKit’s requirement that any modern FxPlug plug-in be delivered through a host application. This advantage is lost when delivering products for other hosts. In those cases, any bundle installed as part of your product may be a suitable candidate to become the designated bundle.

All components of your product need to be deliverable through a standard macOS installer package. The installer package needs to be signed with official certificates issued by Apple to all registered developers. In other words, your software must pass the default macOS security requirements to allow apps purchased from the App Store or delivered by identified developers to run on the system without being blocked by GateKeeper.

App Notarization

Beginning with macOS Catalina, we also require that your software be notarized. Apple allows installer packages to be uploaded to the Notarization Service. Once submitted, the notarization service will examine the contents of your installer package and determine if its executable code can be notarized. Upon successful completion of this process, you can staple the installer package and submit it to us for distribution through FxFactory. “Stapling" is the term Apple uses to refer to the act of attaching additional metadata to the installer package.

We provide assistance through the above process, both in codesigning your binaries and in having the installer be notarized.

The free Timecode plug-in provides a good example of an external product. It ships as a simple container app that includes a PlugInKit component loaded by Final Cut Pro. The Timecode application only checks that its basic requirements are met (version of Final Cut Pro, macOS, etc.) and offers basic instructions to the user when all those requirements are met.

Although you are welcome to provide a custom uninstaller for your product, recent versions of FxFactory no longer make this a necessity. Our software can locate and uninstall any components that are part of your product and remove them when the user asks to uninstall the product.

Next Steps

Getting Third-party Products Ready