Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report: iOS SDL3 Porting Struggles

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

Toytles: Leaf Raking

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”

Comments are closed.