AU validation errors

I'm getting reports from a few customers that my plugin is failing validation in Logic Pro. I can install the same plug on my development system and I get no errors or warnings. Just wondering if anyone else has seen this and has any idea of what might be going on. Below is a validation report sent to me by a customer. The interesting thing is that I'm using OS X 10.10.5 with Logic Pro 10.2 and my customer is using the exact same setup. His Logic validation log seems scrambled and apparently has trouble parsing the Info.Plist file.

 

2015-10-16 17:49:52.135 auvaltool[733:21027] 17:49:52.135 WARNING:   >compload> AudioComponentPluginLoader.cpp:445: ParseInfoPlistArray: ARC%202.component -- file:///Library/Audio/Plug-Ins/Components/: trouble parsing Info.plist's AudioComponents; entry: <CFBasicHash 0x7fde9b801600 [0x7fff7af3fed0]>{type = mutable dict, count = 7,

entries =>

      2 : <CFString 0x7fde9b800c70 [0x7fff7af3fed0]>{contents = "manufacturer"} = <CFString 0x7fde9b802a50 [0x7fff7af3fed0]>{contents = "ikm_"}

      7 : <CFString 0x7fde9b802ce0 [0x7fff7af3fed0]>{contents = "factoryFunction"} = <CFString 0x7fde9b8011f0 [0x7fff7af3fed0]>{contents = "HostAUFactory"}

      8 : <CFString 0x7fde9b803590 [0x7fff7af3fed0]>{contents = "subtype"} = <CFString 0x7fff7af096e0 [0x7fff7af3fed0]>{contents = ""}

      9 : <CFString 0x7fff7af13400 [0x7fff7af3fed0]>{contents = "description"} = <CFString 0x7fde9b802710 [0x7fff7af3fed0]>{contents = "ARC System 2"}

      10 : <CFString 0x7fde9b8035d0 [0x7fff7af3fed0]>{contents = "type"} = <CFString 0x7fde9b803690 [0x7fff7af3fed0]>{contents = "aufx"}

      11 : <CFString 0x7fde9b803440 [0x7fff7af3fed0]>{contents = "name"} = <CFString 0x7fde9b8021e0 [0x7fff7af3fed0]>{contents = "IK Multimedia: ARC System 2"}

      12 : <CFString 0x7fde9b8036d0 [0x7fff7af3fed0]>{contents = "version"} = <CFString 0x7fde9b803710 [0x7fff7af3fed0]>{contents = "65536"} }

2015-10-16 17:49:52.137 auvaltool[733:21027] 17:49:52.137 WARNING:   >compload> AudioComponentPluginLoader.cpp:445: ParseInfoPlistArray: ARP%202600%20V2%20Efx.component -- file:///Library/Audio/Plug-Ins/Components/: trouble parsing Info.plist's AudioComponents; entry: <CFBasicHash 0x7fde9bb001f0 [0x7fff7af3fed0]>{type = mutable dict, count = 6,

entries =>

      2 : <CFString 0x7fde9bb01680 [0x7fff7af3fed0]>{contents = "manufacturer"} = <CFString 0x7fde9bb016c0 [0x7fff7af3fed0]>{contents = "Artu"}

      7 : <CFString 0x7fde9bb01790 [0x7fff7af3fed0]>{contents = "subtype"} = <CFString 0x7fde9bb009f0 [0x7fff7af3fed0]>{contents = "arpY"}

      8 : <CFString 0x7fde9bb01700 [0x7fff7af3fed0]>{contents = "version"} = <CFNumber 0x2060337 [0x7fff7af3fed0]>{value = +132611, type = kCFNumberSInt64Type}

      9 : <CFString 0x7fff7af13400 [0x7fff7af3fed0]>{contents = "description"} = <CFString 0x7fde9bb00290 [0x7fff7af3fed0]>{contents = "ARP 2600 V2 AU Efx"}

      10 : <CFString 0x7fde9bb00a30 [0x7fff7af3fed0]>{contents = "type"} = <CFString 0x7fde9bb00a70 [0x7fff7af3fed0]>{contents = "aufx"}

      11 : <CFString 0x7fde9bb01580 [0x7fff7af3fed0]>{contents = "name"} = <CFString 0x7fde9bb01730 [0x7fff7af3fed0]>{contents = "Arturia: ARP 2600 V2 Efx"} }

2015-10-16 17:49:52.139 auvaltool[733:21027] 17:49:52.139 WARNING:   >compload> AudioComponentPluginLoader.cpp:445: ParseInfoPlistArray: ARP%202600%20V2.component -- file:///Library/Audio/Plug-Ins/Components/: trouble parsing Info.plist's AudioComponents; entry: <CFBasicHash 0x7fde9bb001b0 [0x7fff7af3fed0]>{type = mutable dict, count = 6,

entries =>

      2 : <CFString 0x7fde9bb00c60 [0x7fff7af3fed0]>{contents = "manufacturer"} = <CFString 0x7fde9bb00ca0 [0x7fff7af3fed0]>{contents = "Artu"}

      7 : <CFString 0x7fde9bb00de0 [0x7fff7af3fed0]>{contents = "subtype"} = <CFString 0x7fde9bb00e20 [0x7fff7af3fed0]>{contents = "arpW"}

      8 : <CFString 0x7fde9bb00ce0 [0x7fff7af3fed0]>{contents = "version"} = <CFNumber 0x2060337 [0x7fff7af3fed0]>{value = +132611, type = kCFNumberSInt64Type}

      9 : <CFString 0x7fff7af13400 [0x7fff7af3fed0]>{contents = "description"} = <CFString 0x7fde9bb005b0 [0x7fff7af3fed0]>{contents = "ARP 2600 V2 AU"}

      10 : <CFString 0x7fde9bb00e60 [0x7fff7af3fed0]>{contents = "type"} = <CFString 0x7fde9bb00ea0 [0x7fff7af3fed0]>{contents = "aumu"}

      11 : <CFString 0x7fde9bb00b60 [0x7fff7af3fed0]>{contents = "name"} = <CFString 0x7fde9bb00d30 [0x7fff7af3fed0]>{contents = "Arturia: ARP 2600 V2"} }

2015-10-16 17:49:52.180 auvaltool[733:21027] 17:49:52.180 WARNING:   >compload> AudioComponentPluginLoader.cpp:445: ParseInfoPlistArray: CS-80%20V2.component -- file:///Library/Audio/Plug-Ins/Components/: trouble parsing Info.plist's AudioComponents; entry: <CFBasicHash 0x7fde9bb038f0 [0x7fff7af3fed0]>{type = mutable dict, count = 6,

entries =>

      2 : <CFString 0x7fde9bb03f30 [0x7fff7af3fed0]>{contents = "manufacturer"} = <CFString 0x7fde9bb03cb0 [0x7fff7af3fed0]>{contents = "ArTu"}

      7 : <CFString 0x7fde9bb01e30 [0x7fff7af3fed0]>{contents = "subtype"} = <CFString 0x7fde9bb03100 [0x7fff7af3fed0]>{contents = "Cs82"}

      8 : <CFString 0x7fde9bb02de0 [0x7fff7af3fed0]>{contents = "version"} = <CFNumber 0x2060337 [0x7fff7af3fed0]>{value = +132611, type = kCFNumberSInt64Type}

      9 : <CFString 0x7fff7af13400 [0x7fff7af3fed0]>{contents = "description"} = <CFString 0x7fde9bb02910 [0x7fff7af3fed0]>{contents = "CS-80 V2 AU"}

      10 : <CFString 0x7fde9bb03140 [0x7fff7af3fed0]>{contents = "type"} = <CFString 0x7fde9bb03180 [0x7fff7af3fed0]>{contents = "aumu"}

      11 : <CFString 0x7fde9bb02a90 [0x7fff7af3fed0]>{contents = "name"} = <CFString 0x7fde9bb03030 [0x7fff7af3fed0]>{contents = "Arturia: CS-80V2"} }

2015-10-16 17:49:52.319 auvaltool[733:21027] 17:49:52.319 WARNING:   >compload> AudioComponentPluginLoader.cpp:445: ParseInfoPlistArray: Mini%20V2%20Efx.component -- file:///Library/Audio/Plug-Ins/Components/: trouble parsing Info.plist's AudioComponents; entry: <CFBasicHash 0x7fde9bb0c390 [0x7fff7af3fed0]>{type = mutable dict, count = 6,

entries =>

      2 : <CFString 0x7fde9bb0b030 [0x7fff7af3fed0]>{contents = "manufacturer"} = <CFString 0x7fde9bb0a900 [0x7fff7af3fed0]>{contents = "Artu"}

      7 : <CFString 0x7fde9bb0ca80 [0x7fff7af3fed0]>{contents = "subtype"} = <CFString 0x7fde9bb0cc40 [0x7fff7af3fed0]>{contents = "minx"}

      8 : <CFString 0x7fde9bb07850 [0x7fff7af3fed0]>{contents = "version"} = <CFNumber 0x2060337 [0x7fff7af3fed0]>{value = +132611, type = kCFNumberSInt64Type}

      9 : <CFString 0x7fff7af13400 [0x7fff7af3fed0]>{contents = "description"} = <CFString 0x7fde9bb0c590 [0x7fff7af3fed0]>{contents = "Mini V2 AU Efx"}

      10 : <CFString 0x7fde9bb0cc80 [0x7fff7af3fed0]>{contents = "type"} = <CFString 0x7fde9bb0ccc0 [0x7fff7af3fed0]>{contents = "aufx"}

      11 : <CFString 0x7fde9bb0be00 [0x7fff7af3fed0]>{contents = "name"} = <CFString 0x7fde9bb0c7b0 [0x7fff7af3fed0]>{contents = "Arturia: Mini V Efx"} }

2015-10-16 17:49:52.321 auvaltool[733:21027] 17:49:52.321 WARNING:   >compload> AudioComponentPluginLoader.cpp:445: ParseInfoPlistArray: Mini%20V2.component -- file:///Library/Audio/Plug-Ins/Components/: trouble parsing Info.plist's AudioComponents; entry: <CFBasicHash 0x7fde9bb0c220 [0x7fff7af3fed0]>{type = mutable dict, count = 6,

entries =>

      2 : <CFString 0x7fde9bb0be00 [0x7fff7af3fed0]>{contents = "manufacturer"} = <CFString 0x7fde9bb0b030 [0x7fff7af3fed0]>{contents = "Artu"}

      7 : <CFString 0x7fde9bb0ca80 [0x7fff7af3fed0]>{contents = "subtype"} = <CFString 0x7fde9bb0cc20 [0x7fff7af3fed0]>{contents = "mini"}

      8 : <CFString 0x7fde9bb07850 [0x7fff7af3fed0]>{contents = "version"} = <CFNumber 0x2060337 [0x7fff7af3fed0]>{value = +132611, type = kCFNumberSInt64Type}

      9 : <CFString 0x7fff7af13400 [0x7fff7af3fed0]>{contents = "description"} = <CFString 0x7fde9bb0bdc0 [0x7fff7af3fed0]>{contents = "Mini V2 AU"}

      10 : <CFString 0x7fde9bb0cc60 [0x7fff7af3fed0]>{contents = "type"} = <CFString 0x7fde9bb0cca0 [0x7fff7af3fed0]>{contents = "aumu"}

      11 : <CFString 0x7fde9bb0a0e0 [0x7fff7af3fed0]>{contents = "name"} = <CFString 0x7fde9bb0b170 [0x7fff7af3fed0]>{contents = "Arturia: Mini V"} }

2015-10-16 17:49:52.348 auvaltool[733:21027] 17:49:52.348 WARNING:   >compload> AudioComponentPluginLoader.cpp:445: ParseInfoPlistArray: Modular%20V2%20Efx.component -- file:///Library/Audio/Plug-Ins/Components/: trouble parsing Info.plist's AudioComponents; entry: <CFBasicHash 0x7fde9bb0d580 [0x7fff7af3fed0]>{type = mutable dict, count = 6,

entries =>

      2 : <CFString 0x7fde9bb0d520 [0x7fff7af3fed0]>{contents = "manufacturer"} = <CFString 0x7fde9bb0d8a0 [0x7fff7af3fed0]>{contents = "Artu"}

      7 : <CFString 0x7fde9bb0c240 [0x7fff7af3fed0]>{contents = "subtype"} = <CFString 0x7fde9bb0d8e0 [0x7fff7af3fed0]>{contents = "xmv2"}

      8 : <CFString 0x7fde9bb0ce50 [0x7fff7af3fed0]>{contents = "version"} = <CFNumber 0x2070337 [0x7fff7af3fed0]>{value = +132867, type = kCFNumberSInt64Type}

      9 : <CFString 0x7fff7af13400 [0x7fff7af3fed0]>{contents = "description"} = <CFString 0x7fde9bb09650 [0x7fff7af3fed0]>{contents = "Modular V2 AU Efx"}

      10 : <CFString 0x7fde9bb0d5e0 [0x7fff7af3fed0]>{contents = "type"} = <CFString 0x7fde9bb0d280 [0x7fff7af3fed0]>{contents = "aufx"}

      11 : <CFString 0x7fde9bb096b0 [0x7fff7af3fed0]>{contents = "name"} = <CFString 0x7fde9bb0e8b0 [0x7fff7af3fed0]>{contents = "Arturia: Modular V Efx"} }

2015-10-16 17:49:52.350 auvaltool[733:21027] 17:49:52.349 WARNING:   >compload> AudioComponentPluginLoader.cpp:445: ParseInfoPlistArray: Modular%20V2.component -- file:///Library/Audio/Plug-Ins/Components/: trouble parsing Info.plist's AudioComponents; entry: <CFBasicHash 0x7fde9bb0c290 [0x7fff7af3fed0]>{type = mutable dict, count = 6,

entries =>

      2 : <CFString 0x7fde9bb0d8e0 [0x7fff7af3fed0]>{contents = "manufacturer"} = <CFString 0x7fde9bb0d8a0 [0x7fff7af3fed0]>{contents = "Artu"}

      7 : <CFString 0x7fde9bb0d620 [0x7fff7af3fed0]>{contents = "subtype"} = <CFString 0x7fde9bb0ca80 [0x7fff7af3fed0]>{contents = "mmv2"}

      8 : <CFString 0x7fde9bb0ce50 [0x7fff7af3fed0]>{contents = "version"} = <CFNumber 0x2070337 [0x7fff7af3fed0]>{value = +132867, type = kCFNumberSInt64Type}

      9 : <CFString 0x7fff7af13400 [0x7fff7af3fed0]>{contents = "description"} = <CFString 0x7fde9bb0dcf0 [0x7fff7af3fed0]>{contents = "Modular V2 AU"}

      10 : <CFString 0x7fde9bb0e910 [0x7fff7af3fed0]>{contents = "type"} = <CFString 0x7fde9bb0d280 [0x7fff7af3fed0]>{contents = "aumu"}

      11 : <CFString 0x7fde9bb0c240 [0x7fff7af3fed0]>{contents = "name"} = <CFString 0x7fde9bb0e840 [0x7fff7af3fed0]>{contents = "Arturia: Modular V"} }

2015-10-16 17:49:52.389 auvaltool[733:21027] 17:49:52.389 WARNING:   >compload> AudioComponentPluginLoader.cpp:445: ParseInfoPlistArray: Prophet%20V2.component -- file:///Library/Audio/Plug-Ins/Components/: trouble parsing Info.plist's AudioComponents; entry: <CFBasicHash 0x7fde9bb0c7b0 [0x7fff7af3fed0]>{type = mutable dict, count = 6,

entries =>

      2 : <CFString 0x7fde9bb0c240 [0x7fff7af3fed0]>{contents = "manufacturer"} = <CFString 0x7fde9bb0d520 [0x7fff7af3fed0]>{contents = "Artu"}

      7 : <CFString 0x7fde9bb0d3e0 [0x7fff7af3fed0]>{contents = "subtype"} = <CFString 0x7fde9bb0ca80 [0x7fff7af3fed0]>{contents = "P5V2"}

      8 : <CFString 0x7fde9bb0d9b0 [0x7fff7af3fed0]>{contents = "version"} = <CFNumber 0x2060237 [0x7fff7af3fed0]>{value = +132610, type = kCFNumberSInt64Type}

      9 : <CFString 0x7fff7af13400 [0x7fff7af3fed0]>{contents = "description"} = <CFString 0x7fde9bb0dcf0 [0x7fff7af3fed0]>{contents = "Prophet V2 AU"}

      10 : <CFString 0x7fde9bb0d5e0 [0x7fff7af3fed0]>{contents = "type"} = <CFString 0x7fde9bb0e860 [0x7fff7af3fed0]>{contents = "aumu"}

      11 : <CFString 0x7fde9bb0a900 [0x7fff7af3fed0]>{contents = "name"} = <CFString 0x7fde9bb0cde0 [0x7fff7af3fed0]>{contents = "Arturia: Prophet V2"} }

2015-10-16 17:49:52.414 auvaltool[733:21027] 17:49:52.414 WARNING:   >compload> AudioComponentPluginLoader.cpp:445: ParseInfoPlistArray: Sonarworks%20Reference%203%20plugin.component -- file:///Library/Audio/Plug-Ins/Components/: trouble parsing Info.plist's AudioComponents; entry: <CFBasicHash 0x7fde9bb126a0 [0x7fff7af3fed0]>{type = mutable dict, count = 7,

entries =>

      2 : <CFString 0x7fde9bb10b00 [0x7fff7af3fed0]>{contents = "manufacturer"} = <CFString 0x7fde9bb0f800 [0x7fff7af3fed0]>{contents = "SoWo"}

      7 : <CFString 0x7fde9bb12830 [0x7fff7af3fed0]>{contents = "factoryFunction"} = <CFString 0x7fde9bb12890 [0x7fff7af3fed0]>{contents = "SonarworksAUFactory"}

      8 : <CFString 0x7fde9bb0e9b0 [0x7fff7af3fed0]>{contents = "subtype"} = <CFString 0x7fde9bb11fc0 [0x7fff7af3fed0]>{contents = "PSTh"}

      9 : <CFString 0x7fff7af13400 [0x7fff7af3fed0]>{contents = "description"} = <CFString 0x7fde9bb0e920 [0x7fff7af3fed0]>{contents = "Sonarworks Reference 3 AU plug-in"}

      10 : <CFString 0x7fde9bb128f0 [0x7fff7af3fed0]>{contents = "type"} = <CFString 0x7fde9bb12a30 [0x7fff7af3fed0]>{contents = "kAudioUnitType_Effect"}

      11 : <CFString 0x7fde9bb11810 [0x7fff7af3fed0]>{contents = "name"} = <CFString 0x7fde9bb12970 [0x7fff7af3fed0]>{contents = "Sonarworks: Sonarworks Reference 3 AU plug-in"}

      12 : <CFString 0x7fde9bb10e90 [0x7fff7af3fed0]>{contents = "version"} = <CFNumber 0x300040a37 [0x7fff7af3fed0]>{value = +50332682, type = kCFNumberSInt64Type} }

2015-10-16 17:49:52.431 auvaltool[733:21027] 17:49:52.431 WARNING:   >compload> AudioComponentPluginLoader.cpp:445: ParseInfoPlistArray: SSDSampler.component -- file:///Library/Audio/Plug-Ins/Components/: trouble parsing Info.plist's AudioComponents; entry: <CFBasicHash 0x7fde9bb101d0 [0x7fff7af3fed0]>{type = mutable dict, count = 7,

entries =>

      2 : <CFString 0x7fde9bb11210 [0x7fff7af3fed0]>{contents = "manufacturer"} = <CFString 0x7fde9bb12500 [0x7fff7af3fed0]>{contents = "SlDl"}

      7 : <CFString 0x7fde9bb112f0 [0x7fff7af3fed0]>{contents = "factoryFunction"} = <CFString 0x7fde9bb11510 [0x7fff7af3fed0]>{contents = "SSDSamplerAUFactory"}

      8 : <CFString 0x7fde9bb136d0 [0x7fff7af3fed0]>{contents = "subtype"} = <CFString 0x7fde9bb13550 [0x7fff7af3fed0]>{contents = "Smpl"}

      9 : <CFString 0x7fff7af13400 [0x7fff7af3fed0]>{contents = "description"} = <CFString 0x7fde9bb111d0 [0x7fff7af3fed0]>{contents = "SSDSampler"}

      10 : <CFString 0x7fde9bb0e9b0 [0x7fff7af3fed0]>{contents = "type"} = <CFString 0x7fde9bb133f0 [0x7fff7af3fed0]>{contents = "kAudioUnitType_MusicDevice"}

      11 : <CFString 0x7fde9bb11380 [0x7fff7af3fed0]>{contents = "name"} = <CFString 0x7fde9bb0fb30 [0x7fff7af3fed0]>{contents = "slatedigital: SSDSampler"}

      12 : <CFString 0x7fde9bb11340 [0x7fff7af3fed0]>{contents = "version"} = <CFNumber 0x1000037 [0x7fff7af3fed0]>{value = +65536, type = kCFNumberSInt64Type} } Manufacturer String: Bayou Media AudioUnit Name: Drum Gator Component Version: 256.2.5 (0x1000205) Component's Bundle Version: 0.0.0


* * PASS

--------------------------------------------------

TESTING OPEN TIMES:

COLD:

FATAL ERROR: OpenAComponent: result: -1,0xFFFFFFFF



validation result: n’a pas pu s’ouvrir

I guess in this case it would be helpful to have a look at that Info.plist file...

The file looks good at first glance. I did notice that when I loaded the AU into Logic, it passed validation but Logic's plugin manager reported "invalid" for the version field. Closer examination revealed that all the other AUs were using three fields in the version string while I was using four. I checked Apple's documentation and sure enough they say that the version field in Info.plist should be three fields. So I changed the version to three fields and I no longer get the "invalid" warning. I'm going to give a new build to some of my users to try out and see if that fixes it. Even if this does work, it seems pretty inconsistent because some users are reporting validation failure while some aren't.

Ok I have corrected the "version" field and now the customer no longer gets the scrambled validation report. Now, however, the same customers are reporting a different validation failure. Here's the report.


validating Audio Unit Drum Gator by Bayou Media:
    AU Validation Tool
    Version: 1.6.1a1 
    Copyright 2003-2013, Apple Inc. All Rights Reserved.
    Specify -h (-help) for command options
--------------------------------------------------
VALIDATING AUDIO UNIT: 'aufx' - 'DG02' - 'BAYU'
--------------------------------------------------
Manufacturer String: Bayou Media
AudioUnit Name: Drum Gator
Component Version: 1.0.3 (0x10003)
Component's Bundle Version: 1.0.3
* * PASS
--------------------------------------------------
TESTING OPEN TIMES:
COLD:
FATAL ERROR: OpenAComponent: result: -1,0xFFFFFFFF

validation result: couldn't be opened

Here's the Info.plist file as well.


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>BuildMachineOSBuild</key>
    <string>14F27</string>
    <key>CFBundleExecutable</key>
    <string>DrumGator</string>
    <key>CFBundleIdentifier</key>
    <string>com.bayou-media.DrumGator</string>
    <key>CFBundleName</key>
    <string>DrumGator</string>
    <key>CFBundlePackageType</key>
    <string>BNDL</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0.3</string>
    <key>CFBundleSignature</key>
    <string>PTul</string>
    <key>CFBundleSupportedPlatforms</key>
    <array>
        <string>MacOSX</string>
    </array>
    <key>CFBundleVersion</key>
    <string>1.0.3</string>
    <key>DTCompiler</key>
    <string>com.apple.compilers.llvm.clang.1_0</string>
    <key>DTPlatformBuild</key>
    <string>7A1001</string>
    <key>DTPlatformVersion</key>
    <string>GM</string>
    <key>DTSDKBuild</key>
    <string>11E52</string>
    <key>DTSDKName</key>
    <string>macosx10.7</string>
    <key>DTXcode</key>
    <string>0701</string>
    <key>DTXcodeBuild</key>
    <string>7A1001</string>
    <key>NSHighResolutionCapable</key>
    <true/>
    <key>NSHumanReadableCopyright</key>
    <string>Bayou Media</string>
</dict>
</plist>

Just to be clear I can load this just fine on my Mac with OS X 10.10.5 and Logic X 10.2. However, some customers are reporting validation failures. I would appreciate some help with this. It's only the AU format that seems to be causing problems.

Here's a validation log on the same plugin fom a different customer.

 

validating Audio Unit Drum Gator by Bayou Media:

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
AU Validation Tool
Version: 1.6.1a1 
Copyright 2003-2007, Apple, Inc. All Rights Reserved.

Specify -h (-help) for command options
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

--------------------------------------------------
VALIDATING AUDIO UNIT: 'aufx' - 'DG02' - 'BAYU'
--------------------------------------------------
Manufacturer String: Bayou Media
AudioUnit name: Drum Gator
Component Version: 1.0.3 (0x10003)

* * PASS
--------------------------------------------------
TESTING OPEN TIMES:
COLD:
2015-10-21 21:25:43.409 auvaltool[1982:a07] Error loading /Library/Audio/Plug-Ins/Components/DrumGator.component/Contents/MacOS/DrumGator: dlopen(/Library/Audio/Plug-Ins/Components/DrumGator.component/Contents/MacOS/DrumGator, 262): Library not loaded: /usr/lib/libc++.1.dylib
Referenced from: /Library/Audio/Plug-Ins/Components/DrumGator.component/Contents/MacOS/DrumGator
Reason: image not found
FATAL ERROR: OpenAComponent: result: 4294967246,0xFFFFFFCE


validation result: couldn't be opened

updating properties of AU Drum Gator by Bayou Media...FAILED!



FAILED!

Well it's not even loading the bundle's binary. There are many reasons for this: the most likely is that the "OSX Deployment Target" is greater than the OSX version on the users machine - or that there is a CPU archetecture mismatch (32-bit and/or 64-bit). 

Universal binary 32 &64 bit. Deployment target is 10.7. Runs on my iMac OSX 10.10.5. Others with the same OS are reporting errors. Very frustrating.

I think it's reading the image but there's a reference that it can't find (see below).

dlopen(/Library/Audio/Plug-Ins/Components/DrumGator.component/Contents/MacOS/DrumGator, 262): Library not loaded: /usr/lib/libc++.1.dylib Referenced from: /Library/Audio/Plug-Ins/Components/DrumGator.component/Contents/MacOS/DrumGator Reason: image not found

Why is it looking for /usr/lib/libc++.1.dylib and why is it not found? And why is this only a problem on the AU version?

 

Looks like I had changed C++ Language Standard to C++ 11 and C++ Library to LLVM libc++, which apparently only exists on OS X 10.10.5 or greater. I'm changing them back to Default to see if that fixes it.

C++11 and libc++ should definitely be supported on older OSX versions, if I remember correctly it has been around since OS X 10.7 (Lion).

You'r right. I'm getting reports of validation failure on that build too. Time to start digging. Does anyone know of a tool tht can check the dependencies of an executable and see if they actually exist on a given system? I can use the "otool" command to see what the dependencies are but it doesn't tell you if they are present. The only way to do that is to actually try and load the plugin I suppose but auval doesn't always tell you WHY a plugin didn't load, just that it was unable to open.

Here's the latest.


Symbol not found: __tlv_bootstrap Referenced from: /Library/Audio/Plug-Ins/Components/DrumGator.component/Contents/MacOS/DrumGator Expected in: /usr/lib/libSystem.B.dylib
 

From a customer using OS X 10.6.8 and LP 9.1.8

2015-10-23 00:40:18.788 auvaltool[351:a07] Error loading /Library/Audio/Plug-Ins/Components/DrumGator.component/Contents/MacOS/DrumGator: dlopen(/Library/Audio/Plug-Ins/Components/DrumGator.component/Contents/MacOS/DrumGator, 262): Symbol not found: __tlv_bootstrap
Referenced from: /Library/Audio/Plug-Ins/Components/DrumGator.component/Contents/MacOS/DrumGator
Expected in: /usr/lib/libSystem.B.dylib
in /Library/Audio/Plug-Ins/Components/DrumGator.component/Contents/MacOS/DrumGator
FATAL ERROR: OpenAComponent: result: 4294967246,0xFFFFFFCE

On my development system, I dumped the symbol table for libSystem.B.dylib, and I don't see the symbol  __tlv_bootstrap, but my plugin runs just fine.
 

That's not a juce symbol, or anything from the AU framework as far as I know. Must be some kind of compiler-generated or standard-library symbol.. Maybe try googling it? Probably just means you need to tweak a build setting somewhere.

Google was not much help on that. To be honest, most customers don't get that error so I'm going to look elsewhere for now. Most customers who have run auval only get this

TESTING OPEN TIMES: COLD: FATAL ERROR: OpenAComponent: result: -1,0xFFFFFFFF validation result: couldn't be opened

with no indication of why the plug couldn't be opened. Funny this is that it runs fine on my Mac and validates perfectly, which some subset of custmers get validation errors. It this point I think I'm going to open a support ticket with Apple to see if they can provide any insight.


262): Symbol not found: __tlv_bootstrap

Looks like this one only happens on machines running OS X 10.6.8. All the others (10.9 and later) just say 

FATAL ERROR: OpenAComponent: result: -1,0xFFFFFFFF

A few of customers' machines have trouble reading Info.plist. For example, one customer with 10.10.5 got this:


AU Validation Tool
    Version: 1.6.1a1 
    Copyright 2003-2013, Apple Inc. All Rights Reserved.
    Specify -h (-help) for command options
--------------------------------------------------
VALIDATING AUDIO UNIT: 'aufx' - 'DG02' - 'BAYU'
2015-11-01 12:42:39.658 auvaltool[6753:987100] 12:42:39.658 WARNING:   >compload> AudioComponentPluginLoader.cpp:445: ParseInfoPlistArray: CA-2A.component -- file:///Library/Audio/Plug-Ins/Components/: trouble parsing Info.plist's AudioComponents; entry: <CFBasicHash 0x7f9e8ad0b750 [0x7fff73861ed0]>{type = mutable dict, count = 7,
entries =>
    2 : <CFString 0x7f9e8ad0b800 [0x7fff73861ed0]>{contents = "manufacturer"} = <CFString 0x7f9e8ad09d70 [0x7fff73861ed0]>{contents = "CWSY"}
    7 : <CFString 0x7f9e8ad0abf0 [0x7fff73861ed0]>{contents = "factoryFunction"} = <CFString 0x7f9e8ad0ac50 [0x7fff73861ed0]>{contents = "AUWrapperFactory"}
    8 : <CFString 0x7f9e8ad09e70 [0x7fff73861ed0]>{contents = "subtype"} = <CFString 0x7f9e8ad09eb0 [0x7fff73861ed0]>{contents = "comp"}
    9 : <CFString 0x7fff73835400 [0x7fff73861ed0]>{contents = "description"} = <CFString 0x7f9e8ad0aab0 [0x7fff73861ed0]>{contents = "CA-2A Compressor"}
    10 : <CFString 0x7f9e8ad09f70 [0x7fff73861ed0]>{contents = "type"} = <CFString 0x7f9e8ad09fb0 [0x7fff73861ed0]>{contents = "aufx"}
    11 : <CFString 0x7f9e8ad09e00 [0x7fff73861ed0]>{contents = "name"} = <CFString 0x7f9e8ad0acb0 [0x7fff73861ed0]>{contents = "Cakewalk: CA-2A"}
    12 : <CFString 0x7f9e8ad09ff0 [0x7fff73861ed0]>{contents = "version"} = <CFString 0x7f9e8ad0a030 [0x7fff73861ed0]>{contents = "0x00020000"}
}
2015-11-01 12:42:39.974 auvaltool[6753:987100] 12:42:39.974 WARNING:   >compload> AudioComponentPluginLoader.cpp:445: ParseInfoPlistArray: Sonarworks%20Reference%203%20plugin.component -- file:///Library/Audio/Plug-Ins/Components/: trouble parsing Info.plist's AudioComponents; entry: <CFBasicHash 0x7f9e8ad09df0 [0x7fff73861ed0]>{type = mutable dict, count = 7,
entries =>
    2 : <CFString 0x7f9e8ad159c0 [0x7fff73861ed0]>{contents = "manufacturer"} = <CFString 0x7f9e8ad09e70 [0x7fff73861ed0]>{contents = "SoWo"}
    7 : <CFString 0x7f9e8ad09e30 [0x7fff73861ed0]>{contents = "factoryFunction"} = <CFString 0x7f9e8ad09ee0 [0x7fff73861ed0]>{contents = "SonarworksAUFactory"}
    8 : <CFString 0x7f9e8ad15400 [0x7fff73861ed0]>{contents = "subtype"} = <CFString 0x7f9e8ad0b760 [0x7fff73861ed0]>{contents = "PSTh"}
    9 : <CFString 0x7fff73835400 [0x7fff73861ed0]>{contents = "description"} = <CFString 0x7f9e8ad08960 [0x7fff73861ed0]>{contents = "Sonarworks Reference 3 AU plug-in"}
    10 : <CFString 0x7f9e8ad0b7a0 [0x7fff73861ed0]>{contents = "type"} = <CFString 0x7f9e8ad0a0b0 [0x7fff73861ed0]>{contents = "kAudioUnitType_Effect"}
    11 : <CFString 0x7f9e8ad155a0 [0x7fff73861ed0]>{contents = "name"} = <CFString 0x7f9e8ad15620 [0x7fff73861ed0]>{contents = "Sonarworks: Sonarworks Reference 3 AU plug-in"}
    12 : <CFString 0x7f9e8ad174c0 [0x7fff73861ed0]>{contents = "version"} = <CFNumber 0x300040a37 [0x7fff73861ed0]>{value = +50332682, type = kCFNumberSInt64Type}
}
--------------------------------------------------
Manufacturer String: Bayou Media
AudioUnit Name: Drum Gator
Component Version: 1.0.3 (0x10003)
Component's Bundle Version: 1.0.3
* * PASS
--------------------------------------------------
TESTING OPEN TIMES:
COLD:
FATAL ERROR: OpenAComponent: result: -1,0xFFFFFFFF

I had a couple of customers do a directory listing of the component folder and got some curious permissions.


drwxrwxrwx@ 6 plaiss  staff  204 23 oct 12:34 Contents
/Library/Audio/Plug-ins/Components/DrumGator.component/Contents:
total 16
-rwxrwxrwx@ 1 plaiss  staff  1221 23 oct 03:05 Info.plist
drwxrwxrwx@ 3 plaiss  staff   102 23 oct 12:34 MacOS
-rwxrwxrwx@ 1 plaiss  staff     9 23 oct 03:05 PkgInfo
drwxrwxrwx@ 4 plaiss  staff   136 23 oct 12:34 Resources
/Library/Audio/Plug-ins/Components/DrumGator.component/Contents/MacOS:
total 9640
-rwxrwxrwx@ 1 plaiss  staff  4934652 23 oct 03:05 DrumGator
/Library/Audio/Plug-ins/Components/DrumGator.component/Contents/Resources:
total 16
-rwxrwxrwx@ 1 plaiss  staff   786 23 oct 03:05 DrumGator.rsrc
-rwxrwxrwx@ 1 plaiss  staff  2842 23 oct 03:05 RecentFilesMenuTemplate.nib

Everything has rwxrwxrwx@, whereas on my system it's more like rwx-r--r-- for everything. Also notice the @ indicating extended attributes. I'm going to have them list the extended attributes as well to see if there are any clues there.

 

Did you build it with the deployment target set so that it'd be compatible with these older systems?

The deployment target is set to OS X 10.7. I understand that this may not work on older systems but the main problem is that it fails validation on 10.7 and newer. I have one or two customers who don't have this problem on 10.10.5 (including my development system) but most report validation failure. The missing symbol is only reported by a couple of users with 10.6.8, which is most likely caused by my deployment target setting and is therefore a separate issue. Since most users are on 10.7 and later, i want to solve that problem first. I sent several users a diagnostic script that runs auval and looks at the AU component area of the filesystem, the idea being to look for anything out of the ordinary. That's how I got some of the results I posted earler. In several cases, auval was unable to parse the Plist.info file but in some cases it just reports failure to open the component.

On getting more data from customers, it looks like OS X has quarantined my AU component. I'm guessing that either my executable, the installer, or both need to be signed using my Apple developer ID.


-rwxrwxrwx@ 1 philippelaiss  staff  1221 23 oct 03:05 Info.plist
    com.apple.quarantine      57 
drwxrwxrwx@ 3 philippelaiss  staff   102  3 nov 22:49 MacOS
    com.apple.quarantine      57 
-rwxrwxrwx@ 1 philippelaiss  staff     9 23 oct 03:05 PkgInfo
    com.apple.quarantine      57 
drwxrwxrwx@ 4 philippelaiss  staff   136  3 nov 22:49 Resources
    com.apple.quarantine      57 

I was recently able to obtain another Mac on which I was able to reproduce the problem. It turns out that OS X was quarantining the plugin. However, after removing the quarantine, AU validation continues to fail with no indication of why. As a test I downloaded a copy of Reaper and Reaper loads and runs the AU just fine! Also, this particular Mac has an older version of GarageBand, which also runs the AU with no complaints. This just keeps getting more and more frustrating.

I thought auval always gives a reason for failure.. Does it say nothing at all?

I got this one recently.


TESTING OPEN TIMES:
COLD:
Nov 10 21:44:08 Shannels-MacBook-Pro.local auvaltool[1239] <Warning>: CGSConnectionByID: 0 is not a valid connection ID.
Nov 10 21:44:08 Shannels-MacBook-Pro.local auvaltool[1239] <Warning>: CGSConnectionByID: 0 is not a valid connection ID.
Nov 10 21:44:08 Shannels-MacBook-Pro.local auvaltool[1239] <Warning>: CGSConnectionByID: 0 is not a valid connection ID.
Nov 10 21:44:08 Shannels-MacBook-Pro.local auvaltool[1239] <Warning>: Invalid Connection ID 0
FATAL ERROR: OpenAComponent: result: -1,0xFFFFFFFF