Find IL2CPP strip bugs before your build breaks.📄 DocumentationIL2CPP bugs are painful because they often show up only after you build.A script works fine in the Editor. Then you make a WebGL, Android, iOS, VR, or console build, and suddenly a type, method, serializer, save system, or reflection call stops working.IL2CPP Strip Guard helps you catch those risks early.It scans your Unity project and shows places where IL2CPP managed stripping, reflection, serialized type names, or AOT generics may break your build.Use it when your project has:ReflectionSave systemsCustom serializersRuntime type loadingCommand systemsDialogue systemsEvent systemsDependency injectionAddressablesGeneric factoriesWhat it helps you do:Find risky IL2CPP code before shippingSee clear Critical, High, Medium, and Low risk findingsCheck if risks are already covered by [Preserve] or link.xmlGenerate a reviewable link.xml suggestionExport JSON and Markdown reportsRun checks in CI so bad builds can fail earlyIgnore known safe findings when neededThis tool does not promise that your whole project is 100% IL2CPP safe.It gives you a practical safety scan, clear warnings, and useful fixes so you are not debugging blind after a broken build.Unity version: Unity 2021.3 LTS+Tested with:Unity 2021.3 LTSUnity 2022.3 LTSUnity 6+Editor-only: does not add runtime code to your player buildMenu path: Tools > IL2CPP Strip GuardSettings path: Project Settings > IL2CPP Strip GuardDefault generated link.xml path: Assets/IL2CPPStripGuard/Generated/link.xmlDefault report path: Library/IL2CPPStripGuard/ReportsScans for common IL2CPP risk patterns:Type.GetType("Namespace.Type")assembly.GetType("Namespace.Type")Activator.CreateInstance(...)GetMethod("MethodName")GetField("FieldName")GetProperty("PropertyName")MethodInfo.Invoke(...)MakeGenericType(...)MakeGenericMethod(...)typeof(Generic<>)[SerializeReference]Serialized managed reference type namesSerialized strings that look like runtime type namesRecognizes preserve coverage from:[UnityEngine.Scripting.Preserve][Preserve][assembly: Preserve]Existing Assets/**/link.xml filesGenerated link.xmlAssembly, namespace, type, and member preserve entriesReports finding status as:Active risk not covered or ignoredCovered risk appears protectedIgnored risk matches an ignore rule or ignore commentCI support:Batchmode execute method:IL2CPPStripGuard.Editor.IL2CPPStripGuardCI.RunFully namespaced method:KevinBjorvand.IL2CPPStripGuard.Editor.IL2CPPStripGuardCI.RunCI can:Run scan without opening the windowExport JSON and Markdown reportsLog severity countsUse fail thresholdsExit with code 1 when thresholds are exceededExit with code 0 when checks passImportant limitations:The scan is heuristicIt does not run player buildsIt does not prove all generic AOT coverageFalse positives can happenFalse negatives can happen with very indirect dynamic codeGenerated link.xml preserves metadata, but may not force every closed generic method body or instantiationAI was used to find bugs and increase code quality


