Technical Note TN2296

Audio Units - The AudioUnit_IOKitUserClients info.plist key

This Technical Note discusses the AudioUnit_IOKitUserClients info.plist key necessary for allowing audio unit plugins to talk to custom drivers in a fully sandboxed process.

Introduction
Using the AudioUnit_IOKitUserClients key
Document Revision History

Introduction

The purpose of the AudioUnit_IOKitUserClients key in an audio unit plugins info.plist file is to have the audio unit inform the system of its entitlement requirements in a fully sandboxed process. When an audio unit needs to communicate with a custom driver, setting this key applies the appropriate entitlements to the process loading the audio unit plugin thereby allowing the audio unit access to a custom driver.

Using the AudioUnit_IOKitUserClients key

An audio unit plugin may create user-clients by calling IOServiceOpen for standard IOKit objects without restriction. However, if an audio unit plugin needs to create a custom user-client, it must explicity list the class name(s) of the user-client(s) in its bundles info.plist specified by the AudioUnit_IOKitUserClients key. The value of this key is an array of user-client class names.

Listing 1  Adding the AudioUnit_IOKitUserClients key to an audio unit plugins info.plist.

<key>AudioUnit_IOKitUserClients</key>
    <array>
        <string>com_mycompany_driver_UserClient1</string>
        <string>com_mycompany_driver_UserClient2</string>
    </array>


Document Revision History


DateNotes
2012-03-06

New document that discusses the AudioUnit_IOKitUserClients key required by Audio Units that need to talk to custom drivers in a fully sandboxed process.