Interesting case with Logic AU validation;

Hi, I would like to share an interesting case,

The last version of my plugin had problems with Logic AU validation, but only on some Apple hardwares; however with a common fatal error such as;

2017-03-21 22:47:47.322 auvaltool[15584:749088] Error loading /Library/Audio/Plug-Ins/Components/Cosmosf.component/Contents/MacOS/Cosmosf: dlopen(/Library/Audio/Plug-Ins/Components/Cosmosf.component/Contents/MacOS/Cosmosf, 262): Library not loaded: /System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage
Referenced from: /Library/Audio/Plug-Ins/Components/Cosmosf.component/Contents/MacOS/Cosmosf
Reason: image not found
FATAL ERROR: OpenAComponent: result: -50,0xFFFFFFCE

However the plugin works fine on other DAW’s but only Logic did not validate it. And on some machines the AU validation passes.

As you would see on the AU validation log, the error is about CoreImage framework, somehow the validation process looks for this system framework in the executable file. So I manually added that CoreImage framework on Xcode, and the problem was solved.

But how can I know that I should include this framework as well, where the validation passes on my machine and some others. I find this very annoying and unexpected, where I assume that the plugin works on all the machines and DAW’s.

As I don’t have access to these machines (they are client computers) I can’t give you much further details. However maybe you had similar experience with the CoreImage framework.


Could it be that your macOS deployment target is too new and you are trying to validate the AU on an older macOS version? It seems that it’s finding a too old version of CoreImage when loading the plug-in.

Thanks for the comment.

This looks like a glitch of Apple. When we talk about being old it is about selecting a compatible OSX version, however if only a framework causes the problem; one cannot trust this. I am not able to test every Apple computer and OSX version.

After all Apple forces the developers to update always to the latest OSX version, and compiler version.

Could be unrelated and probably you know that already, but bear in mind to only set the deployment target to an old OSX version, not the base SDK. The base SDK should be always the default (=latest) afaik. I think an exception is if you build for RTAS.

But I am no expert when it comes to backward compatibility, I have only one machine for testing and always send prayers when I run the deploy script :wink:

1 Like