Why is there no "Windows (IL2CPP)" build module for macOS installations of Unity?

I’m curious as to why there is no “Windows (IL2CPP)” build module for macOS installations of Unity? I see the Mac build support on macOS has IL2CPP, but Windows and Linux only have Mono. Is there a way to add IL2CPP build support, or a work around or something?

1 Like

Because of difficulty getting the Windows MSVC compiler to work on macOS, we don’t have support for this cross-compilation scenario. If you do want to build a Windows Desktop Standalone Player on macOS, you can do so with the Mono scripting backend.

Thanks for the info. That’s pretty much in line with what I figured the answer would be

1 Like

@JoshPeterson Hi Joshua. Do you consider switching to clang or gcc for cross compiling anywhere in the future? Would be great to be able to build all platforms from macOS (our common build-server)

Honestly, I don’t expect this to be supported soon. I’m not even sure if clang or gcc on macOS are capable of cross compiling to Windows. I feel like it would be difficult to get the standard library for Windows available on macOS. So unfortunately, this is not something we plan to support for IL2CPP.

With that said, it is possible to cross-compile player build for desktop platforms with the Mono scripting backend.

1 Like

Is it safe to use Mono (for Windows builds) in terms of project decompilation/hacking? (This is important for online games.)
Or should I buy a Windows PC to build with IL2CPP? (Mac ARM is not very compatible with Windows today.)

Is it possible to build Windows IL2CPP on a remote machine somehow?
And is there any way to use a virtual Windows environment on Mac ARM to build Windows IL2CPP?

Short answer: No.
Long answer: Neither is IL2CPP safe.

Decompiling IL2CPP is only more complicated, but there already exist tools (not made by Unity) to decompile IL2CPP.

The truth is, for code to run on your machine, it needs to be readable, and therefore decompilable. If you want some measure of security for say an online game, it’s mostly your server’s job to ensure the client is “honest”.

As for your second question, I haven’t personally tried, my guess would be yes it is possible, but that’s a guess.

1 Like