Unity-Technologies/UnityCsReference · critical · NotSupportedException
Unsupported architecture {RuntimeInformation.ProcessArchitec
Error message
Unsupported architecture {RuntimeInformation.ProcessArchitecture} on macOS What it means
Thrown by GetCurrentDotNETRuntimeId (UnityEditorMSBuildPropsTargetsGeneration.cs:216, NotSupportedException) when running on macOS but RuntimeInformation.ProcessArchitecture is neither Arm64 nor X64. Unity only ships osx-arm64 and osx-x64 RIDs, so any other architecture cannot be mapped and props/targets generation fails.
Source
Thrown at Editor/Mono/Scripting/ScriptCompilation/MsBuild/UnityEditorMSBuildPropsTargetsGeneration.cs:216
return "win-x64";
default:
throw new NotSupportedException($"Unsupported architecture {RuntimeInformation.ProcessArchitecture} on Windows");
}
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
return "linux-x64";
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
switch (RuntimeInformation.ProcessArchitecture)
{
case Architecture.Arm64:
return "osx-arm64";
case Architecture.X64:
return "osx-x64";
default:
throw new NotSupportedException($"Unsupported architecture {RuntimeInformation.ProcessArchitecture} on macOS");
}
}
throw new NotSupportedException($"Unsupported OS platform {RuntimeInformation.OSDescription}");
}
private static string s_cachedUnitySdkVersion;
// Reads the version from Unity.Sdk.<version>.nupkg so global.json tracks CI's bumped value
// (in sdk/UnitySdksCommon.props) instead of a hardcoded literal.
private static string GetUnitySdkVersion(string sdkNugetsPath)
{
if (s_cachedUnitySdkVersion != null)
return s_cachedUnitySdkVersion;
const string prefix = "Unity.Sdk.";
const string suffix = ".nupkg";
View on GitHub (pinned to 225b0fbdb5)
Solutions
- Run Unity Editor on a supported macOS architecture (Apple Silicon Arm64 or Intel x64).
- If running under Rosetta or a VM that misreports architecture, run natively so ProcessArchitecture matches the host.
Defensive patterns
Strategy: validation
Validate before calling
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)
&& RuntimeInformation.ProcessArchitecture is not (Architecture.X64 or Architecture.Arm64))
{
throw new PlatformNotSupportedException(
$"Unity requires macOS x64 or ARM64 (got {RuntimeInformation.ProcessArchitecture}).");
} Prevention
- Run the editor natively on Apple Silicon or Intel x64 macOS.
- If using a VM/translation layer, ensure ProcessArchitecture reports X64 or Arm64.
- Fail fast at startup with an architecture check.
When it happens
Trigger: Running the editor on a macOS machine whose reported process architecture is not Apple Silicon (Arm64) or Intel x64.
Common situations: An exotic macOS environment or a misreported architecture under a translation layer / VM.
Related errors
- Unsupported architecture {RuntimeInformation.ProcessArchitec
- Unsupported OS platform {RuntimeInformation.OSDescription}
- Unity SDK nuget feed not found at {sdkNugetsPath}
- No {prefix}*{suffix} package found in {sdkNugetsPath}
- Bundled dotnet SDK not found at {sdkRoot}
AI-assisted analysis of Unity-Technologies/UnityCsReference@225b0fbdb5 (2026-08-13).
Data as JSON: /api/errors/ed1ba447a76cbe5f.
Report an issue: GitHub.