godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
86.48k stars 19.27k forks source link

Undefined symbols linker error when running app on iOS simulator #92881

Open RocketRonz opened 1 month ago

RocketRonz commented 1 month ago

Tested versions

4.2.2.stable, 4.3.beta1.mono

System information

Godot v4.2.2.stable - macOS 14.5.0 - GLES3 (Compatibility) - Apple M2 - Apple M2 (8 Threads)

Issue description

iOS export works fine on actual device but throws "Undefined symbols" linker error when attempting to run on any simulator. Lots of "Ignoring file" warnings on Debug-iphonesimulator/libgodot.a because required architecture is arm64 The only architecture I can choose from the Godot export tool for iOS is arm64 (Android has multiple available)

Steps to reproduce

Reproducible with a minimal Godot project. No code, just a single Node2D scene containing a ColorRect.

Minimal reproduction project (MRP)

N/A

bruvzg commented 1 month ago

Official export templates doesn't include ARM64 simulator binaries (limitation of OSXCross used to build it). You can either build a custom template or use x86-64 simulator (run Xcode under Rosetta).

RocketRonz commented 4 weeks ago

The latest version of Xcode (15.4) no longer has an option to run under Rosetta and doesn't appear to include any Rosetta simulators. Not sure if Apple have just stopped supporting this.

I noticed there's a PR that could fix this issue (https://github.com/godotengine/godot/pull/92750). I'm guessing this could take a while to make it into the beta.