FMOD Studio API works in iOS simulator, but not on device

(UPDATED)

I’m trying to get FMOD studio working in an iOS application (using C++ in Xcode) and everything works perfectly in the iOS Simulator, but whenever I try to run the app on a physical device everything loads okay, and without errors, but it can’t find and play any events.

Whenever I perform ANY queries I always get FMOD_ERR_EVENT_NOTFOUND responses for them. This includes calling

  • Studio::System::getEvent
  • Studio::System::getMixerStrip
  • even Studio::System::lookupId

When I call any methods on a Studio::Bank class, I get an FMOD_ERR_NOTREADY error.

I’ve tried with different devices (including an iPhone 5s and an iPad 3) and neither device works.

Does anyone have any suggestions?

------UPDATE-------

I’ve done some more research, and I was using FMOD_STUDIO_LOAD_BANK_NONBLOCKING to load the Bank files asynchronously. I’ve switched it to us FMOD_STUDIO_LOAD_BANK_NORMAL, and now the following method completely locks up the application.

FMOD_ErrorCheck(_studioSystem->loadBankFile(bankFilePath, FMOD_STUDIO_LOAD_BANK_NORMAL, &bank));

The exact same method on the iOS Simulator works correctly.

It turns out I wasn’t linking the lib files correctly. I was missing the linker flags in my Xcode configuration.

Add “-lfmodL_$PLATFORM_NAME” and “-lfmodstudioL_$PLATFORM_NAME” to “Other Linker Flags” (in the “Linker” section)

It was weird because things appeared to be working fine even though I apparently wasn’t even linking the FMOD libs.

The post from markmarijnissen at http://52.88.2.202/questions/question/forum-39077 helped a lot on how to correctly set up FMOD in an Xcode project.

1 Like