Steam 2.3.1+ Latest update may have broken steam support on OSX? Seems fine on Windows.

P

Paul G.

Guest
Has anyone been getting this error on OSX when running with Steam enabled on the latest GMS2 update?

Steam_Init
Error: Failed to load libsteam_api.dylib from /Users/Shared/GameMakerStudio2/Cache/runtimes/runtime-2.3.1.406/mac/YoYo Runner.app/Contents/MacOS/libsteam_api.dylib
dlerror:dlopen(/Users/Shared/GameMakerStudio2/Cache/runtimes/runtime-2.3.1.406/mac/YoYo Runner.app/Contents/MacOS/libsteam_api.dylib, 1): image not found
Error: Failed to load libsteam_api.dylib: dlopen(/Users/paul/Library/Application Support/com.yoyogames.macyoyorunner/game/assets/libsteam_api.dylib, 1): no suitable image found. Did find:
/Users/paul/Library/Application Support/com.yoyogames.macyoyorunner/game/assets/libsteam_api.dylib: code signature in (/Users/paul/Library/Application Support/com.yoyogames.macyoyorunner/game/assets/libsteam_api.dylib) not valid for use in process using Library Validation: mapping process and mapped file (non-platform) have different Team IDs
Failed LoadSteamLib() call: Error loading libsteam_api.dylib
SteamInit failed: Error loading libsteam_api.dylib


This wasn't happening before the latest update. It seems like a GMS2 problem, but I recognize that it could also be my own incompetence. In the case of the latter, does anyone know how to solve this?
If it is a legit GMS2 bug, where do these things get reported? Kicking myself for allowing it to update right as I was about to ship. This basically ruins my launch.

Is there a way to revert to the previous version of GMS2 that was working? I can't find a way to do it.
 
S

Sam (Deleted User)

Guest
I see something that stood out "different team id's" would seem to indicate yoyogames are codesigning their dylib which they shouldn't be, that should be done by the person who distributes the app executable which calls the dylib so there won't be code signature conflicts like the one reported in the output log. Re-installing won't fix that.

Edit:

reading more i see "com.yoyogames.macyoyorunner" that is the mac runner bundle id meaning i guess you must be running from the ide. Dylibs are known to be broken when running from the ide, yoyo has had this broken ever since macos catalina came out a year ago. Try exporting a build instead and see if that works. In my experience exporting a build removes the code signatures applied by yoyo to the runner and such.
 
Last edited by a moderator:
P

Paul G.

Guest
Thanks for the replies! I reported it to yoyo and they said it is fixed in the upcoming 1.3.2 update, so we will be able to launch directly from the IDE again when testing steam features.

To be able to release the OSX version of the game all of the binaries (including the dylibs) had to be signed by the same cert, so that Apple's notarizing process would work.
To pull that off I wrote a python script to recursively search the app bundle for binaries (including dynamic ones), check if they are 'fat-files' and strip the 32-bit versions of the binary out otherwise apple rejects it (the steam dylib is a fat file), then code-sign them, then sign the whole bundle, zip it and upload it to the notarizing service.

I wish there was a way to set a different price for the Mac version of a game on Steam. I would charge more for all the trouble.
 
Last edited by a moderator:

chirpy

Member
It seems that this is fixed in IDE 2.3.1.536! I was able to run mac IDE VM and load my .dylib correctly (not thoroughly tested but yay).
Building Projects: macos VM should have its plist entitlement set so unsigined/third-party dylibs can be used during dev-testing
Edit: I meant "diffrent team IDs", not sure about steamapi since I don't use it.
 
Top