A Mac Game Compatible with Apple Silicon May Appear Incompatible on Steam: The Cause Lies in Steamworks
On the Steam page of a Mac game, an orange warning may appear:
"Notice: This product is not compatible with macOS 10.15 Catalina or above."
This is a message that clearly discourages a potential buyer from purchasing the game, and consequently, it can have repercussions on the developer's sales. In many cases, the cause is not a real lack of compatibility, but simply some checkboxes in Steamworks that have remained unchecked.
Since October 2019, Valve requires that all new macOS applications on Steam be 64-bit and notarized by Apple. macOS Catalina (10.15) was the first version of the operating system to eliminate support for 32-bit apps, and Steam has subsequently aligned its requirements. 32-bit apps already on the store continue to be sold, but any new title must meet this requirement. The orange warning appears when Steamworks does not receive updated information about the architecture and notarization of the build.
Checkboxes to Enable in Steamworks
The correct configuration requires the developer to intervene on the application page in Steamworks, in the section Supported Operating Systems. The first step is to check the box for macOS. The subsequent selections depend on the architecture supported by the build:
- 64-bit (Intel) Binaries Included if the build includes 64-bit Intel binaries,
- Apple Silicon Binaries Included if it includes native binaries for Apple Silicon. These two flags do not exclude each other: a Universal Binary requires both. Finally, if the build has been notarized by Apple, App Bundles Are Notarized should be selected. The Steamworks documentation on platform requirements for macOS describes each item in detail.
Entitlements and Incompatibilities with the Mac App Store
For compatibility with macOS 10.15 Catalina, Steamworks documentation indicates two entitlements to add to the build configuration. The first, com.apple.security.cs.disable-library-validation, allows loading the Steamworks SDK library and the overlay library. The second, com.apple.security.cs.allow-dyld-environment-variables, enables injecting the overlay library into the game process.
Those distributing on multiple stores must take into account a significant incompatibility: Steam is currently not compatible with the entitlement com.apple.security.app-sandbox, which is instead mandatory for distribution on the Mac App Store. Those compiling for both channels must ensure that this entitlement is not present in the build uploaded to Steam, accordingly managing separate builds or distinct compilation flags.