We have a SDL app that we distribute through the Apple appstore. This app deals with mouse only, it has no keyboard functionality. Since macOS 10.15 Catalina new releases of this app are rejected because our binary is wanting to receive keystrokes even though it has no purpose for it.
Does anyone has advice to go around this? Is there any way to disable listening for keystrokes?
You’ll probably have to edit SDL a bit to remove incriminated function. If Apple provided them to you look for them in “[SDL_SOURCES]\src\video\cocoa” I think. I have problem reading objective-c language and can’t be more precise than that.
And for the joke. Add a Easter Eggs that need you to press option+a+v+h+j+i+m+l+d and a messagebox would say “Congratulation you are an octopus”.
What version of SDL are you using? 2.0.10 has a change which should work around this issue ( https://hg.libsdl.org/SDL/rev/6a3b2cc9d66c ).
Thanks. We are on 2.0.8 so I will try upgrading to 2.0.10 first.
The security pop up in Catalina is also happening due to this in SDL 1.2x. Maybe this can be fixed, too
SDL 1.2 doesn’t have the same code that was causing the issue in SDL 2.0.x before 2.0.10. I think you should update to SDL 2 if you want your app to be well-behaved on modern operating systems…
Thanks but that doesn’t help.
Regardless of whether there is the same code, the behaviour is the same and the call to upgrade to SDL2 is well known.
Many of the Apple APIs which SDL 1.2 calls are deprecated and could stop working in any new macOS release. I don’t think you should expect SDL 1.2 to work or be fixed for new operating systems that are released after SDL 2.0 replaced 1.2.
Have you tried Ryan’s sdl12-compat library for using SDL 1.2’s external APIs while internally using SDL 2.0 under the hood?