Last time, I reported that I was working on the SDL3 mobile ports of my strategic leaf-raking business simulation game, Toytles: Leaf Raking.
I continued to fight with the Apple ecosystem to create my iOS port.
Sprint 2026-MJ_13: Release SDL3 update version
In progress:
- Ensure iOS version can still be built/deployed
I am so close. Every SDL2 to SDL3 update for each platform I support is finished except for iOS.
I ended up looking at the script libSDL3 uses to build its Universal library, and it is TOO Universal! It combines everything: Mac, iOS, visionOS, tvOS, and watchOS.
I don’t need all that, so instead I adapted my own library build scripts to create my own Universal libraries to support just iOS, and I did the same for SDL3_image, SDL3_mixer, and SDL3_ttf.
Now I have a few .xcframeworks that I can use to build my app and have it run in the simulator or on an actual hardware device. That’s a lot nicer than having separate builds like I used to with SDL2.
But to get there involved a lot of false starts, such as installing needed things like the Metal toolchain and deciding not to include the debug symbols because I would get errors that they weren’t valid debug symbols.
Next was updating my own application’s build process. I used to have static libraries for SDL2, but now that I have dynamic SDL3 libraries, I need to be able to not only build my app with those libraries but also run the app by pointing to those libraries when they are embedded in the app.
I ran out of time last week, but once again I am making slow and steady progress.
Thanks for reading, and stay curious!
—
Want to learn about future Freshly Squeezed games I am creating? Sign up for the GBGames Curiosities newsletter, and download the full color Player’s Guides to my existing and future games for free!


One reply on “Freshly Squeezed Progress Report: iOS SDL3 Porting Struggles”
[…] my previous report, I said that I was working on the SDL3 iOS port of my strategic leaf-raking business simulation […]