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?
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