Okay, I think I figured out why the plugin passes the auval test in Xcode but not in the terminal, and it has to do with an issue highlighting in another thread I started, where two different version numbers of the plugin are being recognized by Logic. The current version (version number 0 for development) always passes the auval test and is always recognized by Logic. The old version (version 1.0.0, from before I modified the version number) of the plugin fails the test.
When I open Logic’s plugin manager I the current version always shows up as successfully validated, while the old version shows up as having failed validation. I have tried resetting the AudioUnit Cache on my computer several times and rescanning for plugins and this is always the result.
Therefore, when I run auval from the command line I think it does not always pick the correct version of the plugin (but sometimes picks the old version which is somehow stuck in Logic’s memory), and so sometimes fails. When it runs in Xcode it knows exactly which executable to use and therefore always passes.
Very strange issue. Thanks all for sticking with me and helping me figure this out. Hopefully I can find a solution for the multiple versions of the plugin being found by Logic, but I don’t believe this will be an issue for other users, so at least some progress was made.