Testing a Custom Plugin
When you write your own driver plugin, you can run it inside a local debug build of TablePro before publishing it to the registry. If you package the plugin and install it the way the app installs a registry plugin, it fails with “Unable to install plug-in.” The install path only accepts plugins signed by TablePro’s signing team, and a plugin you just built locally is not signed by it. The way around this is to let the plugin ship inside the app bundle instead of installing it as a user plugin. Add it to the Copy Plug-Ins build phase, then run the app. Plugins that live inside the app bundle load as built-in plugins, which are not put through the signature check.Steps
Add the plugin to Copy Plug-Ins
In Xcode, select the TablePro target, open the Build Phases tab, and add your
.tableplugin bundle to the Copy Plug-Ins phase.Run the app
Press
Cmd+R to build and run. See Building for the -skipPackagePluginValidation requirement on command-line builds.Test the plugin
The plugin loads with the app. Create a connection for your database type and confirm the driver works.
Keep the plugin in Copy Plug-Ins only while you are testing. Release builds distribute plugins through the Plugin Registry, where every binary is signed.
Why the signing error happens
TablePro loads plugins from two locations, and treats them differently:- Inside the app bundle (
PlugIns/): loaded as built-in plugins. No signature check runs. - In the user plugins directory: loaded as user-installed plugins. Each one must be signed by TablePro’s signing team, or it is rejected.
PlugIns/ directory, so it loads as a built-in plugin and the user-install signature check never runs. The phase also re-signs the plugin with the debug build’s own signing identity (CodeSignOnCopy) as it copies it in.
Alternative: allow unsigned user plugins
If you would rather keep developing the plugin from the user plugins directory, a debug build skips the signature check when theTABLEPRO_ALLOW_UNSIGNED_PLUGINS environment variable is set to 1. Set it under Product > Scheme > Edit Scheme > Run > Arguments. This works in debug builds only. Release builds always verify the signature.
When the plugin is ready to ship, publish it through the registry so users receive a signed binary. See Plugin Registry for the manifest format and publishing flow.