OSX 10.15 debug AUv3 in Logic

Hi,

I am trying to debug an AUv3 in Logic 10.5 in OSX Catalina.
But when I build my plugin in Xcode, I get the following error message:

"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."

AUv2 works fine. So this must be something specific to AUv3.
Any ideas, what I need to do, to make the AUv3 build?
For example: how can I find out, what certificate Logic was signed with? And can I even get that certificate?

Note: I am on JUCE 5.4.7.

Seems a little quiet on this one so I though I would throw my hat into the ring.

I believe this is an instance where you would need to Customize the Notarization Workflow.

  • An Audio Unit Appex in an iOS project does not throw the same error
  • The error does not appear when signing to run locally

So the only thing I can think of is that you will need to codesign via the command line using codesign†.

In order to do this you’ll need to be sign-ed up to the developer program.

In full, the workflow would be:

  • Build your app as ‘sign to run locally’
  • codesign via Terminal
  • Notarize
  • Run signed and notarised application to “install” AUv3

Happy to be contradicted on this if only to actually find out what on earth is going on with AUv3s on macOS.

† OR something incredibly weird is going on with the cocktail of building on mojave 10.14.6 in xcode 11.3.1

@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