Final Cut Pro Workflow Extension: Main ViewController not being presented

I'm trying to create a Workflow Extension for Final Cut Pro but I'm not able to do any more than install it.

I've created a Mac app and added the Workflow Extension, the app builds and runs and shows up in FCP. When I launch the extension in FCP a window opens for the extension showing a label "Loading", the default extension icon (puzzle piece) and a progress indicator which does not animate. Nothing else happens, the default view included in the extension (that belonging to {ExtensionName}ViewController does not appear. The default view contains a TextField "FCP Workflow Extension" so I am expecting that to show.

I have compared this behaviour with Ripple Training's workflow extension and this shows the same loading view before cross dissolving to their custom UI.

When the Mac app is running from Xcode and the extension is running inside of FCP I can use Xcode's Attach to Process to attach to the extension but as the view of the {ExtensionName}ViewController does not load I can not use breakpoints or print statements to get any information and that is the only class included in the extension.

What am I missing?

Accepted Reply

The solution was to enable "Disable Library Validation" for the extension - find it in the Signing & Capabilities tab of the target settings.

Replies

Additional Info:

I'm using Final Cut Pro Trial.

When I'm attached to the extension process and pause it this is the main thread stack trace:

Thread 1 Queue : com.apple.main-thread (serial)
#0	0x00007ff81d6b497a in mach_msg_trap ()
#1	0x00007ff81d6b4ce8 in mach_msg ()
#2	0x00007ff81d7b836d in __CFRunLoopServiceMachPort ()
#3	0x00007ff81d7b69f8 in __CFRunLoopRun ()
#4	0x00007ff81d7b5e3c in CFRunLoopRunSpecific ()
#5	0x00007ff8264655e6 in RunCurrentEventLoopInMode ()
#6	0x00007ff82646534a in ReceiveNextEventCommon ()
#7	0x00007ff8264650e5 in _BlockUntilNextEventMatchingListInModeWithFilter ()
#8	0x00007ff8201effad in _DPSNextEvent ()
#9	0x00007ff8201ee66a in -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] ()
#10	0x00007ff824d2d1c2 in __75-[NSViewServiceApplication nextEventMatchingMask:untilDate:inMode:dequeue:]_block_invoke ()
#11	0x00007ff824d2d003 in -[NSViewServiceApplication _withToxicEventMonitorPerform:] ()
#12	0x00007ff824d1abf3 in -[NSViewServiceApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#13	0x00007ff8201e0d19 in -[NSApplication run] ()
#14	0x00007ff8201b4c97 in NSApplicationMain ()
#15	0x00007ff81d439874 in _xpc_objc_main ()
#16	0x00007ff81d439239 in xpc_main ()
#17	0x00007ff81e6362fc in -[NSXPCListener resume] ()
#18	0x00007ff82901d7d6 in ___lldb_unnamed_symbol834 ()
#19	0x00007ff82901d45c in ___lldb_unnamed_symbol830 ()
#20	0x00007ff82901dba5 in ___lldb_unnamed_symbol838 ()
#21	0x00007ff830642385 in EXExtensionMain ()
#22	0x00007ff81e6a0918 in NSExtensionMain ()
#23	0x0000000115f8752e in start ()

The solution was to enable "Disable Library Validation" for the extension - find it in the Signing & Capabilities tab of the target settings.