Definition
IL2CPP reads the IL in your managed assemblies at build time, writes equivalent C++, and hands that to the platform compiler. The player ships a native library such as GameAssembly.dll or libil2cpp.so instead of Assembly-CSharp.dll. Type and method names, string literals, and field layouts are kept in a separate file, global-metadata.dat, because the runtime still needs them. Some platforms, such as iOS and WebGL, only allow IL2CPP.
Relevance
IL2CPP is how Unity ships C# on platforms that do not allow a just-in-time compiler, and the resulting player is usually faster than Mono. The build produces a native library plus global-metadata.dat, which the runtime uses for type names, strings, and reflection.
Example
You switch the scripting backend to IL2CPP and rebuild. The player contains GameAssembly.dll, or libil2cpp.so on Android, instead of Assembly-CSharp.dll, plus global-metadata.dat. The game runs the native code, and the runtime reads names and strings from that metadata file.
Connected
Synonyms
Intermediate Language To C++