FMOD/Bitcode preventing iOS builds

Hi team,

Having an issue building an iOS game from Unity Dashboard; it appears FMOD & bitcode are incompatible & access to disabling bitcode is not possible within Unity Dashboard (where our team’s builds are managed)

Using:
FMOD 2.02.11
Unity 2022.3.1f1

Any ideas on workarounds? Screenshot attached

Best,
Brandon

Update - rolled FMOD versions back to 2.02.09, all is well.

Might be something to look into, team~

1 Like

Hi,

Thank you for bringing this to our attention.

Would it be possible to get the full error log? There is some information being cut off in the screenshot.

Could I please confirm the version you were experiencing the issue with was 2.02.11?

This is a known issue with Unity, there is a way to disable bitcode via script here: https://forum.unity.com/threads/issues-with-bitcode.1384296/#post-8973640.

Hope this helps.

1 Like

Hi Connor,

I can send you the error messages but the full error log contains some sensitive information, so I’ll refrain from posting it to the forum. Below are the isolated error messages:

[error] [2023-07-10T14:38:13.231Z] - 7.3.16.2.7.4 - INFO: ▸ :x: ld: could not reparse object file in bitcode bundle: ‘Invalid bitcode version (Producer: ‘1403.0.22.14.1_0’ Reader: ‘1400.0.29.202_0’)’, using libLTO version ‘LLVM version 14.0.0, (clang-1400.0.29.202)’ for architecture arm64

[error] [2023-07-10T14:38:13.839Z] - 7.3.16.2.7.4 - INFO: ▸ :x: clang: error: linker command failed with exit code 1 (use -v to see invocation)

[error] [2023-07-10T14:38:14.196Z] - 7.3.16.2.7.4 - INFO: :x: ld: could not reparse object file in bitcode bundle: ‘Invalid bitcode version (Producer: ‘1403.0.22.14.1_0’ Reader: ‘1400.0.29.202_0’)’, using libLTO version ‘LLVM version 14.0.0, (clang-1400.0.29.202)’ for architecture arm64

[error] [2023-07-10T14:38:14.197Z] - 7.3.16.2.7.4 - INFO: :x: clang: error: linker command failed with exit code 1 (use -v to see invocation)

[error] [2023-07-10T14:38:14.374Z] - 7.3.16.2.7.4 - INFO: ▸ clang: error: linker command failed with exit code 1 (use -v to see invocation)

[error] [2023-07-10T14:38:14.735Z] - 7.3.16.2.7.4 - ERROR: xcode build failed

[error] RuntimeError (Build Failure):
[error] /BUILD_PATH/.rvm/gems/ruby-2.7.4/gems/bvr-7.3.16.2.7.4/lib/bvr/build/handlers/platform/xcode_compiler.rb:319:in `block in exec_fastlane’: Build Failure (RuntimeError)

On further digging, the FMOD Studio project was built in 2.02.11, but the FMOD for Unity package was 2.02.15. Not sure if that had a hand in the build failures, but I thought it worth mentioning.

Best,
Brandon

1 Like

Hi,

Thank you for the information and for confirming those details. I was able to reproduce the issue and have passed it on to the development team to look into further.

1 Like

Thank you for providing the error details, the producer version of 1403 matches with our builds of 2.02.15 using Xcode 14.3. Comparing that against Unity Build Automation saying 1400 indicates they are using Xcode 14.0 and that there is an incompatibility in bitcode between those versions.

Based on discussions on the Unity forum I can see that Xcode 14.2.0 is the most recent version supported, the assumption being 14.3.0 will be selectable in the dashboard soon. Until that becomes available I’d recommend disabling bitcode for your project following the information here.

We discussed rolling back our Unity builds to 14.2.0, however, that wouldn’t see availability until 2.02.17 (as 2.02.16 is locked in for imminent release), by which time we expect Unity Build Automation will support 14.3.0. As such we will leave our builds as being produced with 14.3.0 for now.

Additionally, it’s worth noting that bitcode as a requirement is essentially dead, Apple have stated in their Xcode 14 release notes that the store won’t accept bitcode anymore. As of Xcode 15 beta bitcode has been removed completely. Unity will need to address their handling of bitcode to stop requiring it to be in compliance with these changes soon, so for now it seems disabling bitcode is the best way forward.

1 Like