With the 2.3.4 release we saw an increased number of reports about the Mac IDE being unable to download runtimes due to missing Mono installations on the Mac, so we wanted to make a guide to help anyone with this issue, as it's not caused by 2.3.4 specifically and could happen regardless of GameMaker version to people using new Macs/after reformatting at any time.
How Do I Know If I Have This Problem?
The most obvious symptom is a runtime installation error resulting in the following dialog being shown early in GameMaker's startup sequence:
You can confirm that you have precisely this issue by checking your GameMaker ui.log (it's in /Users/Shared/GameMakerStudio2/), as it would also contain a much longer error and point out the cause, as you would see this often repeated multiple times each IDE startup:
Web GET RSSAPI Exception installing runtime mac.mono - Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: x. Path '', line 0, position 0.
at Newtonsoft.Json.JsonTextReader.ParseValue () [0x002ac] in /_/Src/Newtonsoft.Json/JsonTextReader.cs:1776
at Newtonsoft.Json.JsonTextReader.Read () [0x0004c] in /_/Src/Newtonsoft.Json/JsonTextReader.cs:419
at Newtonsoft.Json.JsonReader.ReadAndMoveToContent () [0x00000] in /_/Src/Newtonsoft.Json/JsonReader.cs:1238
at Newtonsoft.Json.JsonReader.ReadForType (Newtonsoft.Json.Serialization.JsonContract contract, System.Boolean hasConverter) [0x0004a] in /_/Src/Newtonsoft.Json/JsonReader.cs:1195
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType, System.Boolean checkAdditionalContent) [0x000db] in /_/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs:196
at Newtonsoft.Json.JsonSerializer.DeserializeInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00046] in /_/Src/Newtonsoft.Json/JsonSerializer.cs:907
at Newtonsoft.Json.JsonSerializer.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00000] in /_/Src/Newtonsoft.Json/JsonSerializer.cs:886
at Newtonsoft.Json.JsonConvert.DeserializeObject (System.String value, System.Type type, Newtonsoft.Json.JsonSerializerSettings settings) [0x0002d] in /_/Src/Newtonsoft.Json/JsonConvert.cs:830
at Newtonsoft.Json.JsonConvert.DeserializeObject[T] (System.String value, Newtonsoft.Json.JsonSerializerSettings settings) [0x00000] in /_/Src/Newtonsoft.Json/JsonConvert.cs:786
at Newtonsoft.Json.JsonConvert.DeserializeObject[T] (System.String value) [0x00000] in /_/Src/Newtonsoft.Json/JsonConvert.cs:719
at YoYoStudio.Core.Utils.FileAPI.JsonHelper.DeserializeObject (System.String _jsonString) [0x00000] in <fa16103783c145fc9a5012ec723d64c1>:0
at YoYoStudio.Runtime.RuntimeModule.DownloadInstallAndVerify (System.String _location, System.Object _user, YoYoStudio.Runtime.RuntimeModule+updateProgressBar _update) [0x00252] in <3fc4c796310b4a8295db219e57860621>:0
Finished Wait for all Modules
failed to download runtime module mac.mono
Mono Version number is 0.0.0, comparing to 6.10.0.104
And near the top of each IDE run in your log you would see the confirmation that Mono could not be found on the Mac:
starting /Library/Frameworks/Mono.framework/Versions/Current/Commands/mono --version
####################################
Break in PrintException (YYDebug:73)
Reason: Exception - Unable to launch "/Library/Frameworks/Mono.framework/Versions/Current/Commands/mono"
####################################
Unable to launch "/Library/Frameworks/Mono.framework/Versions/Current/Commands/mono": System.ComponentModel.Win32Exception (0x80004005): ApplicationName='/Library/Frameworks/Mono.framework/Versions/Current/Commands/mono', CommandLine='--version', CurrentDirectory='', Native error= Cannot find the specified file
You can find your own log at /Users/Shared/GameMakerStudio2/ui.log
How Do I Fix It?
The fix here is to install Mono 6.10.0.104 yourself just now. (GameMaker is trying to do this for you at the point that it's getting the error, so unfortunately it's not something we can reliably fix due to permissions and network access on the machine.)
You can download the installer from https://download.mono-project.com/a...-MDK-6.10.0.104.macos10.xamarin.universal.pkg (original page https://www.mono-project.com/download/stable/#download-mac)
If you install/repair Mono using the links above this should stop the GameMaker error immediately. Start the IDE and allow it to download your runtimes as per normal.
Next, please see our Required SDKs FAQ and the relevant platform setup guide(s) this page links to and ensure you're using supported tools for each target you require.
Then you should be all set to start using GameMaker.
Anything Else I Should Be Aware Of?
We would also suggest, given that you have had this issue with Mono already, that you see our guide User Permissions and Internet Access Required by GameMaker, as this will answer any questions about how your OS file permissions and any protection software needs to be configured for GameMaker to work properly.
Please note that if you have a specific issue when following that guide, or need support with your settings to use, etc., we will have to ask you to speak to whomever typically deals with configuring the security software on your machine and/or the documentation for that external protection software, as we won't be able to help configure your machines for you.
We would always strongly suggest reviewing those the Required SDKs and User Permissions guides before installing any external tools in future, and also for confirming your tools setup is still correct whenever updating GameMaker itself, as external permissions and incorrect tool versions being used are very common ways of seeing errors when using GameMaker.