OSX 10.15 debug AUv3 in Logic

@alatar Ignore the above to a degree, also this thread will be of some use AUv3Synth demo - OS X host?

I’m not particular interested in AUv3s but the process of getting them to run on another machine has been so frustrating, I just want to get it to work out of spite.

This thread is the only one to mention the error

“Embedded binary is not signed with the same certificate as the parent app. Verify the embedded binary target’s code sign settings match the parent app’s.”

So lets start there

Embedded binary is not signed with the same certificate as the parent app

This error comes about for reasons I don’t fully understand, but that are fundamentally down to code signing.

To avoid this error

  • In Signings & Capabilities set both the .appex and .app to Sign to Run Locally
  • Do not set Development Team ID in your .jucer project under your Xcode Exporter settings
  • To sign the .app and .appex
    • notarise via xcode or
    • Via Terminal: codesign --force -s "Developer ID Application: Your Name (YOURID)" /path/to/App-with-appex.app -v --timestamp

As a bonus, here are some other problems I’ve found along the way

No App Sandbox

The .appex need both the App Sandbox and Hardened Runtime Capabilities. If the .appex only has Hardened Runtime for notarising, the AUv3 will fail to register

Run the Standalone App first

Obvious to everyone except myself, but you need to run the standalone app before the AUv3 is registered by PluginKit or whatever it is that is registering appexes.

Restart your machine

After running the app for the first time, I have had to restart my machine in order for the AUv3 to be registered, this is the case not just for High Sierra but I have found it for Mojave also.

Assertion failure in +[NSServiceViewController currentAppIsViewService], /BuildRoot/Library/Caches/com.apple.xbs/Sources/ViewBridge/ViewBridge-401.1/NSViewService.m:131

Short version: Channel configurations. This was sorted for me by stipulating a specific channel configuration in the .jucer project settings under Plugin Channel Configuration