Apple is very particular about requiring the bDeviceClass to be set to 2 (Commmunication Device) even for composite devices which seems wrong. Device is enumerated without error on Mac now. Not sure if it works though.
Check the wiki