Cannot distribute SDL3 iOS app with xcFramework

When building using the instructions from the docs in SDL3, I cannot distribute the xcarchive.
It seems the reason is that SDL3 somehow copies a unix executable into my xcarchive.
I cannot find where this copying is performed; it’s not in “copy bundle assets” so I assume it’s via a script somewhere. (See screenshot below)

Are those files necessary, and, if not, how can I remove them?
(Note that I can execute my app locally, just not distribute it on App Store Connect.)

  1. What is the error message you’re getting?

  2. What do you mean you can run your app locally? On your iOS device? In the iOS simulator? Run it on your Mac?

  3. That’s just the SDL 3 binary. And yeah, you need it.

Thanks for quick response.

  1. I’m not even getting an error message, when I archive the application it does not end up by my distributable archives (where the old versions with sdl2 are), rather it goes into “Other”, and when I press “distribute“ I can only distribute to “Custom”.

  2. I can run it both on a connected iPad, and on my Mac (using the designed for iPad alternative)

  3. Ah okay I need that binary? When I was using SDL2 nothing showed up next to “Application”, although I didn’t use an xcFramework back then.
    I thought there was an error as I don’t understand why the header/cmake files are in my archive.

    (As a side note, I’m not very experienced when it comes to the Apple ecosystem.)

  1. Are you talking about where it says “Application” and you crossed it out? Because in your first post you said “unix executable” and I assumed you meant the SDL3 binary in the screenshot.

Hi,

The crossing out is my game, which I assume shall be there. I only crossed it out to not share the name of the commercial game.

Yes, I meant the SDL3 Unix Executable, shall that file really be there? My assumption is that another executable file makes the xcarchive not distributable.

I assume that “Unix Executable” means executable, and is not a library.

/Viktor

I’ve fixed the issue.

The problem was that “build settings/skip install” was set to NO for SDL in xCode. Only I changed that, the app can be distributed to App Store Connect again.

Would suggest adding this info to the docs as this was quite a hard nut to debug, and xCode gives very little help.

Best/Viktor

Any compiled binary (library or otherwise) that isn’t a macOS app bundle gets shown in Finder as “Unix Executable”.

You can see for yourself with the file command:

file SDL3
SDL3: Mach-O 64-bit dynamically linked shared library arm64

Make sure you haven’t added SDL3.xcframework to your app’s source code in Xcode.

You should only see SDL3.xcframework under the Frameworks section in the project browser

After creating the bare minimum iOS SDL3 project, clicking the Distribute App button in the Organizer window shows this: