Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to export iOS builds #101585

Open
mihe opened this issue Jan 15, 2025 · 3 comments · May be fixed by #101590 or #101614
Open

Unable to export iOS builds #101585

mihe opened this issue Jan 15, 2025 · 3 comments · May be fixed by #101590 or #101614

Comments

@mihe
Copy link
Contributor

mihe commented Jan 15, 2025

Tested versions

Reproducible in: 4.4.beta1 [4ce466d]

System information

Godot v4.4.beta1 - macOS Sequoia (15.2.0) - Multi-window, 1 monitor - Metal (Forward+) - integrated Apple M2 Pro (Apple8) - Apple M2 Pro (10 threads)

Issue description

When trying to export any project to iOS, you are currently met with the following errors when it tries to build the Xcode project:

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_MTLFXSpatialScalerDescriptor", referenced from:
       in libgodot.a[1031](metal_device_properties.ios.template_debug.arm64.o)
  "_OBJC_CLASS_$_MTLFXTemporalScalerDescriptor", referenced from:
       in libgodot.a[1031](metal_device_properties.ios.template_debug.arm64.o)
ld: symbol(s) not found for architecture arm64

Given the symbols it's complaining about, I would imagine it's at least related to (if not caused by) #99603.

It's possible to work around this by manually adding MetalFX.framework as a linked library in Xcode, but I'm not sure what the implications of that are on the minimum required iOS version, given that MetalFX seems to be iOS 16 or later.

I imagine it's possible to add this library with something like add_ios_framework("MetalFX.framework") from within an EditorExportPlugin as well.

Steps to reproduce

  1. Create a new project
  2. Export to iOS
  3. Note the error

Minimal reproduction project (MRP)

N/A

@bruvzg
Copy link
Member

bruvzg commented Jan 15, 2025

given that MetalFX seems to be iOS 16 or later

That's not good, we probably need to load MetalFX.framework dynamically, instead of adding it to the project since it should support iOS 12.

@AThousandShips AThousandShips moved this from Unassessed to Release Blocker in 4.x Release Blockers Jan 15, 2025
@akien-mga akien-mga moved this from Release Blocker to Immediate Blocker in 4.x Release Blockers Jan 15, 2025
@akien-mga
Copy link
Member

As we haven't published the beta 1 blog post yet, we should probably redo the builds with this fixed, and release it tomorrow instead. Releasing a highly anticipated beta 1 with a broken platform wouldn't be great.

@bruvzg @stuartcarnie Would you be able to work on a fix today?

@bruvzg
Copy link
Member

bruvzg commented Jan 15, 2025

I'm checking it right now.

@bruvzg bruvzg linked a pull request Jan 15, 2025 that will close this issue
@Repiteo Repiteo linked a pull request Jan 16, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Immediate Blocker
Development

Successfully merging a pull request may close this issue.

5 participants