Create a MacOS Build Using Steamworks SDK

Hello! I’m currently preparing to release my game on the Steam store, and I’m struggling with my Mac build. I have a functioning build of the game, but I’m not sure exactly how to implement it into my Mac Depot.

For reference, here’s my game contents depot (I’m not quite sure how private certain info is, so I’m blocking out build and depot IDs:

"DepotBuildConfig"
{
    // Set your assigned depot ID here
    "DepotID" "#######"

    // Set a root for all content.
    // All relative paths specified below (LocalPath in FileMapping entries, and FileExclusion paths)
    // will be resolved relative to this root.
    // If you don't define ContentRoot, then it will be assumed to be
    // the location of this script file, which probably isn't what you want
    "ContentRoot"    "D:\steamworks_sdk_150\sdk\tools\ContentBuilder\content"

    // include all files recursivley
  "FileMapping"
  {
      // This can be a full path, or a path relative to ContentRoot
    "LocalPath" ".\Game Folder\*"
   
    // This is a path relative to the install folder of your game
    "DepotPath" "."
   
    // If LocalPath contains wildcards, setting this means that all
    // matching files within subdirectories of LocalPath will also
    // be included.
    "recursive" "1"
  }

    // but exclude all symbol files 
    // This can be a full path, or a path relative to ContentRoot
  "FileExclusion" "*.pdb"
  "FileExclusion" "*.exe"
  "FileExclusion" "*.app"
  "FileExclusion" "*.dll"
}

And here’s my Windows depot script:

"DepotBuildConfig"
{
    // Set your assigned depot ID here
    "DepotID" "#######"

    // Set a root for all content.
    // All relative paths specified below (LocalPath in FileMapping entries, and FileExclusion paths)
    // will be resolved relative to this root.
    // If you don't define ContentRoot, then it will be assumed to be
    // the location of this script file, which probably isn't what you want
    "ContentRoot"    "D:\steamworks_sdk_150\sdk\tools\ContentBuilder\content"

    // include all files recursivley

  "FileMapping"
  {
      // This can be a full path, or a path relative to ContentRoot
    "LocalPath" ".\Game Folder\*.exe"
   
    // This is a path relative to the install folder of your game
    "DepotPath" "."
   
    // If LocalPath contains wildcards, setting this means that all
    // matching files within subdirectories of LocalPath will also
    // be included.
    "recursive" "1"
  }


  "FileMapping"
  {
      // This can be a full path, or a path relative to ContentRoot
    "LocalPath" ".\Game Folder\*.dll"
   
    // This is a path relative to the install folder of your game
    "DepotPath" "."
   
    // If LocalPath contains wildcards, setting this means that all
    // matching files within subdirectories of LocalPath will also
    // be included.
    "recursive" "1"
  }


    // but exclude all symbol files 
    // This can be a full path, or a path relative to ContentRoot
  "FileExclusion" "*.pdb"
  "FileExclusion" "*.app"
}

I’m not very familiar with how Mac builds are structured, so I’m not really sure what to files need included / excluded. Please let me know if you’re able to help! Thank you!

Hey Treasureman, I’ve launched two games on Steam for MacOS and used Steamworks.NET for each of them. It works well. It’s a C# wrapper for the API. With just a little tweaking it takes care of most things for you. I recommend you try it instead of integrating the Steam API directly. Cheers.

@ryanmillerca according to the official documentation you referenced,
You still need the official Steamworks SDK to get the ContentBuilder tool to upload your game.
So, how did you upload your MacOS build? I’m curious because I’m also trying to solve this issue. Thanks.

@Treasureman did you ever find a solution that worked for you? Care to share the resolution? Thank you.

You can upload ZIPs of your builds directly to Steam via the Steamworks website, though this is only available if your build is less than 2gb https://partner.steamgames.com/apps/depotuploads/[yourAppIdHere]

I use SteamPipeGUI on Windows to upload my builds.

Hi ryanmillerca,
if I understand correctly, it just need to upload the build “game.app” on mac via website?
and fill de form Steamworks<app_id>

what about:
sdk folder. edit files like app_build_1000.vdf. SteamCmd by terminal
as described in this guide Uploading to Steam (Steamworks Documentation)

Hi Treasureman,

You will need to create a separate depot, where you upload the YourProject.app file and include that depot in mac builds only, just like the executables and data folders are windows only.

Best practice is to create 2 folders in content:

content_windows
content_mac

And create two depot (VDF) configurations which point to the depots separately.

This answer wasn’t resolved in this thread, so posting it here.

There’s a great resource on this topic:

Timestamp: 10:53