spikersoft-ios: CI red on m5-builder — project.yml links device-only MetalFX in simulator builds #913

Closed
opened 2026-08-05 13:58:41 +00:00 by spikerj · 1 comment
Owner

All three iOS CI runs on the new m5-builder runner (jobs 75700/75702/75703) fail identically at link time:

ld: framework 'MetalFX' not found
** BUILD FAILED ** (exit 65)

This is NOT a Metal toolchain/SDK problem on the runner — compile fully succeeds, full Xcode is selected. Root cause: project.yml declares - sdk: MetalFX.framework unconditionally, while .gitea/workflows/ios.yml builds -destination 'generic/platform=iOS Simulator' — the iPhoneSimulator SDK does not ship MetalFX (device-only). Godot is already compiled out of simulator builds (#if !targetEnvironment(simulator) in GamesView.swift), so the simulator slice has no need for MetalFX at all.

Fix: make the MetalFX link SDK-conditional (OTHER_LDFLAGS[sdk=iphoneos*]), and switch CI to the more meaningful device slice with codesigning disabled. Also delete the stale .github/workflows/ios.yml duplicate and fix the README CI pointer.

All three iOS CI runs on the new `m5-builder` runner (jobs 75700/75702/75703) fail identically at link time: ``` ld: framework 'MetalFX' not found ** BUILD FAILED ** (exit 65) ``` This is NOT a Metal toolchain/SDK problem on the runner — compile fully succeeds, full Xcode is selected. Root cause: `project.yml` declares `- sdk: MetalFX.framework` unconditionally, while `.gitea/workflows/ios.yml` builds `-destination 'generic/platform=iOS Simulator'` — the iPhoneSimulator SDK does not ship MetalFX (device-only). Godot is already compiled out of simulator builds (`#if !targetEnvironment(simulator)` in GamesView.swift), so the simulator slice has no need for MetalFX at all. Fix: make the MetalFX link SDK-conditional (`OTHER_LDFLAGS[sdk=iphoneos*]`), and switch CI to the more meaningful device slice with codesigning disabled. Also delete the stale `.github/workflows/ios.yml` duplicate and fix the README CI pointer.
Author
Owner

Resolved in spikersoft-ios PR #2 (merged). MetalFX now links only for sdk=iphoneos* and CI builds the unsigned device slice — first green iOS CI on m5-builder. Closing.

Resolved in spikersoft-ios PR #2 (merged). MetalFX now links only for `sdk=iphoneos*` and CI builds the unsigned device slice — first green iOS CI on m5-builder. Closing.
Sign in to join this conversation.