LibGDX iOS error on new project when running launchIOSDevice

269 Views Asked by At

I was trying to update an old LibGDX game to use the latest versions of various 3rd party libraries and couldn't get it to run on the device. I thought I'd go back to basics and create a new LibGDX project to check that works and I'm still getting the same error. This is a untouched project with the exception of adding the Sign Identity and Provisioning Profile to the build.grade file.

Does a new iOS project work for others? What's the cause of this error?

17:55:34: Executing 'launchIOSDevice'...

Starting Gradle Daemon...
Gradle Daemon started in 569 ms
> Task :core:compileJava UP-TO-DATE
> Task :ios:compileJava UP-TO-DATE
> Task :ios:processResources NO-SOURCE
> Task :ios:classes UP-TO-DATE
> Task :ios:jar UP-TO-DATE
> Task :ios:assemble UP-TO-DATE
> Task :core:processResources NO-SOURCE
> Task :core:classes UP-TO-DATE
> Task :core:jar UP-TO-DATE
> Task :ios:compileTestJava NO-SOURCE
> Task :ios:processTestResources NO-SOURCE
> Task :ios:testClasses UP-TO-DATE
> Task :ios:test NO-SOURCE
> Task :ios:check UP-TO-DATE
> Task :ios:build UP-TO-DATE
> Task :ios:launchIOSDevice
ld: warning: ignoring duplicate libraries: '-lz'
0  0x1025db648  __assert_rtn + 72
1  0x1025960f0  ___Z13dispatchApplyIRKmZ15dispatchForEachIKN6mach_o13CompactUnwind11Diff24FixupEZNK2ld16LayoutExecutable18writeCompactUnwindENSt3__14spanIhLm18446744073709551615EEEyRKNS7_13SectionLayoutEE4$_26EvNSA_IT_Lm18446744073709551615EEEmT0_EUlmE_EvOSG_SI__block_invoke + 0
2  0x18c5f5950  _dispatch_client_callout2 + 20
3  0x18c60a1a4  _dispatch_apply_invoke_and_wait + 176
4  0x18c609464  _dispatch_apply_with_attr_f + 1176
5  0x18c609650  dispatch_apply + 96
6  0x102596398  ld::LayoutExecutable::writeContentWithoutLinkEdit(std::__1::span<unsigned char, 18446744073709551615ul>, unsigned long long) + 672
7  0x10259c020  ld::LayoutExecutable::writeToFile(char const*) + 15248
8  0x10254e2e8  main + 9424
ld: Assertion failed: (false && "compact unwind compressed function offset doesn't fit in 24 bits"), function operator(), file Layout.cpp, line 5758.
clang: error: linker command failed with exit code 1 (use -v to see invocation)

> Task :ios:launchIOSDevice FAILED
5 actionable tasks: 1 executed, 4 up-to-date

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':ios:launchIOSDevice'.
> Failed to launch IOS Device
  Error building RoboVM executable for app
  Command '[/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++, -o, /Users/williamcalderwood/Downloads/test/ios/build/robovm.tmp/IOSLauncher, -Wl,-filelist,/Users/williamcalderwood/Downloads/test/ios/build/robovm.tmp/objects0, -L, /Users/williamcalderwood/.m2/repository/com/mobidevelop/robovm/robovm-dist/2.3.20/unpacked/robovm-2.3.20/lib/vm/ios/arm64, -ObjC, -exported_symbols_list, /Users/williamcalderwood/Downloads/test/ios/build/robovm.tmp/exported_symbols, -Wl,-no_implicit_dylibs, -Wl,-dead_strip, -F/Users/williamcalderwood/.robovm/cache/ios/arm64/release/Users/williamcalderwood/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/gdx-platform/1.12.0/e7eb1777f7c465f6ef8cb1dad7dfc405184f17aa/gdx-platform-1.12.0-natives-ios.jar.extracted/META-INF/robovm/ios/libs, -F/Users/williamcalderwood/.robovm/cache/ios/arm64/release/Users/williamcalderwood/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/gdx-platform/1.12.0/e7eb1777f7c465f6ef8cb1dad7dfc405184f17aa/gdx-platform-1.12.0-natives-ios.jar.extracted/META-INF/robovm/ios/libs/gdx.xcframework/ios-arm64, -F/Users/williamcalderwood/.robovm/cache/ios/arm64/release/Users/williamcalderwood/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/gdx-platform/1.12.0/e7eb1777f7c465f6ef8cb1dad7dfc405184f17aa/gdx-platform-1.12.0-natives-ios.jar.extracted/META-INF/robovm/ios/libs/ObjectAL.xcframework/ios-arm64, -L/usr/lib/swift, -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos, -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.5/iphoneos, -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.0/iphoneos, -fPIC, --target=arm64-apple-ios11.0, -isysroot, /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.0.sdk, -lrobovm-bc, -force_load, /Users/williamcalderwood/.m2/repository/com/mobidevelop/robovm/robovm-dist/2.3.20/unpacked/robovm-2.3.20/lib/vm/ios/arm64/librobovm-rt.a, -lrobovm-debug, -lrobovm-core, -lgc, -lpthread, -ldl, -lm, -lz, -liconv, -lsqlite3, -framework, Foundation, -framework, OpenGLES, -framework, gdx, -framework, ObjectAL, -framework, UIKit, -framework, QuartzCore, -framework, CoreGraphics, -framework, OpenAL, -framework, AudioToolbox, -framework, AVFoundation, -framework, GameController, -lz, -framework, MobileCoreServices, -Xlinker, -rpath, -Xlinker, /usr/lib/swift, -Xlinker, -rpath, -Xlinker, @executable_path/Frameworks, -Xlinker, -rpath, -Xlinker, @loader_path/Frameworks]' failed  (Exit value: 1)

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 58s
17:56:33: Execution finished 'launchIOSDevice'.
1

There are 1 best solutions below

0
Will Calderwood On

I got help from Berstanio on the Discord server.

You need to either downgrade to XCode 14 or append the -ld_classic linker flag (https://github.com/MobiVM/robovm/pull/714 on how to do it)

<config>
    <tools>
        <linker>
            <flags>
                <flag>-fembed-bitcode</flag>
                <flag>-ld_classic</flag>
            </flags>
        </linker>
    </tools>
</config>