Version

menu_open
Warning: you were redirected to the latest documentation corresponding to your major release ( 2022.1.17.8543 ). Should you wish to access your specific version's documentation, please download the offline documentation from the Audiokinetic Launcher and check the Offline Documentation option in Wwise Authoring.
Target Platform(s):
Wwise SDK 2022.1.17
iOS/tvOS/visionOS-Specific Information

This chapter contains information that is specific to using the Wwise SDK for the iOS/tvOS/visionOS platform.

Warning: tvOS and visionOS SoundBanks must use iOS for their base platform.
Note: Unless otherwise specified, the mention "iOS" in this page and its subsections is used to describe interchangeably the iOS, tvOS, and visionOS specific platform details.

SDK Binary Folder Structure for iOS Platforms

The libraries and other binaries provided in the Wwise SDK for the iOS-based platforms are built against a variety of Xcode toolchains, with different folders for each version. The folder naming convention is $(PLATFORM)_Xcode$(XCODE_VERSION_MAJOR), where $(PLATFORM) is the platform name (iOS, tvOS, visionOS) and $(XCODE_VERSION_MAJOR) is a built-in variable provided by Xcode in the following format: XX00. For example, for a tvOS build using Xcode version 15.2, $(XCODE_VERSION_MAJOR) is 1500, so the folder name is tvOS_Xcode1500.

For a given iOS-based platform, all minor versions of Xcode are compatible if the major version matches. For example, an application built against Xcode 15.2 is compatible with Wwise libraries built against Xcode 15.0 (1500). Binaries from different iOS-based platforms are not compatible.

Note: Audiokinetic does not provide precompiled libraries for every Xcode release. Starting with Xcode 14, binaries compatible with stable releases of every major Xcode version are provided. Support for previous Xcode major versions will be removed when Apple's App Store stops accepting submissions for it.

Bluetooth Stuttering and Starvation

Using Bluetooth speakers and headphones induce a lot of latency in the audio. This is due to the Bluetooth compression and over-the-air communication stack in the OS itself. Because of this, latency-sensitive games such as rhythm games will have a degraded gameplay when the Bluetooth device is connected.

Wwise will automatically switch to a high latency mode to avoid stuttering when Bluetooth devices are used. It will revert back to regular latency when the device is disconnected, as specified by AkPlatformInitSettings.uNumRefillsInVoice at initialization.

Note: Using a Bluetooth device with the "Play and Record" audio session will force the OS to downsample all audio to 8 kHz. This behavior is related to the Bluetooth driver itself.

The iOS Audio Session

On iOS, many events such as an incoming phone or FaceTime call, usage of Siri, calendar alerts, or system sounds can prevent app audio from playing at any moment. Apple's audio session is the mechanic that handles the conflicts for access to audio hardware. Choosing the right audio session for your application is important. Fortunately, most of the implementation details when working with audio session are taken care of by the Wwise iOS SDK and little effort is required by the SDK client app to obtain a compliant and efficient audio app that behaves as expected. The following sections present the concept of the iOS audio session and its related Wwise-implemented policies.

iOS-Specific AkPlatformInitSettings

NSPrivacyAccessedAPITypes in Privacy Manifest

Apple requires third-party applications and SDKs to provide a reason for using certain privacy-sensitive APIs in the NSPrivacyAccessedAPITypes entry in the privacy manifest (PrivacyInfo.xcprivacy).

Some Wwise libraries or source code samples use some privacy-sensitive APIs as part of their implementation. Declare these usages in your application's privacy manifest:

  • fstat: Used as part of the POSIX AkDefaultIOHookDeferred sample. This sample is not used as part of the prebuilt Wwise SDK libraries. However, it is used by the Wwise Unity integration.

For more information about the Privacy Manifest and NSPrivacyAccessedAPITypes, refer to this Apple Developer documentation page: Describing use of required reason API .

iOS Release Notes


Was this page helpful?

Need Support?

Questions? Problems? Need more info? Contact us, and we can help!

Visit our Support page

Tell us about your project. We're here to help.

Register your project and we'll help you get started with no strings attached!

Get started with Wwise