Steam and macOS High Sierra

I just took the plunge and installed a fresh new copy of High Sierra. Next, I tried to install the Steam client and all it did was pause at the splash screen. Running the Steam command from the console produced the following errors:

Errors in public/subpanelwelcomeintro.res:
error loading file 'public/subpanelwelcomeintro.res', no such file
Errors in public/subpanelwelcomecreatenewaccount.res:
error loading file 'public/subpanelwelcomecreatenewaccount.res', no such file
Errors in public/subpanelwelcomecreatenewaccountaccountname.res:
error loading file 'public/subpanelwelcomecreatenewaccountaccountname.res', no such file
Errors in public/subpanelwelcomecreatenewaccountemail.res:
error loading file 'public/subpanelwelcomecreatenewaccountemail.res', no such file
Errors in public/subpanelwelcomecreatenewaccountnamecollision.res:
error loading file 'public/subpanelwelcomecreatenewaccountnamecollision.res', no such file
Errors in public/subpanelwelcomecreatingaccount.res:
error loading file 'public/subpanelwelcomecreatingaccount.res', no such file

Technically, those files were not there. However, files that looked very much like those were there. My new shiny APFS filesystem is case-sensitive like every good Unix filesystem should be. Steam, on the other hand, doesn't seem to understand this. So, here's a script to get you up and running. It basically renames all the files the Steam client is looking for into the correct case:

USER=$(whoami)
cd /Users/${USER}/Library/Application\ Support/Steam/Steam.AppBundle/Steam/Contents/MacOS/public; ls *.res | while read line ; do file=$(echo $line | tr '[:upper:]' '[:lower:]'); mv $line $file; done
cd /Users/${USER}/Library/Application\ Support/Steam/Steam.AppBundle/Steam/Contents/MacOS/steam/cached/; ls *.res | while read line ; do file=$(echo $line | tr '[:upper:]' '[:lower:]'); mv $line $file; done
cd /Users/${USER}/Library/Application\ Support/Steam/Steam.AppBundle/Steam/Contents/MacOS/friends; ls *.res | while read line ; do file=$(echo $line | tr '[:upper:]' '[:lower:]'); mv $line $file; done
cd /Users/${USER}/Library/Application\ Support/Steam/Steam.AppBundle/Steam/Contents/MacOS/graphics; ls *.tga | while read line ; do file=$(echo $line | tr '[:upper:]' '[:lower:]'); mv $line $file; done
cd /Users/${USER}/Library/Application\ Support/Steam/Steam.AppBundle/Steam/Contents/MacOS/servers; ls *.tga | while read line ; do file=$(echo $line | tr '[:upper:]' '[:lower:]'); mv $line $file; done

And now you should be good to game.