So will we Just bear in mind, while a .NET upgrade is 'the plan' it's still very much 'the long run' for now. The old AOT. Another way of looking at it is: if you have a fully-functioning iOS project under old-Mono AOT, and you switch it over to using IL2CPP, it should continue to work exactly as before. If it doesn't, we want to know about it ASAP, as that's a top priority bug for us right now. If it doesn't currently work correctly under old-Mono AOT, but is valid code that runs on other platforms under JIT, then it might work under IL2CPP - there are already a number of situations where IL2CPP supports things that old-Mono AOT does not. If it doesn't work under IL2CPP, then again, we want to know about it; these cases aren't as high-priority as the ones where old-Mono AOT beats IL2CPP, but we want to fix them all eventually. As mentioned before, the big exception to this is anything that does IL generation at runtime: the System.Runtime.Reflection.Emit namespace for sure, and things that use it - this does include some non-obvious things like Regex. No guarantees about that one, sorry. But as you say, some kind of static analysis might be possible eventually.