iOS AOT - do I need to worry about obfuscation?

If I publish for iOS, will IL dll be included at all? Isn’t it all just native byte code. If that’s the case I should not worry for obfuscation. Right?

How easy for someone would be to decompile it into source code?

There’s no script code or IL on an iOS build. The build process converts all the script into Arm assembler.

Thank you Graham

Several Unity iOS games I’ve looked at have an Assembly-CSharp.dll file in Data/Managed that can be examined.

If you are using managed code stripping level set to “Strip ByteCode” or higher then included .NET dll’s contain no actual code, only metadata. Otherwise full .NET code is included.

Now that is good to know.

Well, just did a ‘Strip ByteCode’ build and all my C# code is plain to see in Assembly-CSharp.dll via a decompiler.

EDIT:

Ok, this only happens with a Development Build.

Yes, Strip ByteCode is intentionally disabled for script debugging builds, otherwise debugging wouldn’t work.

Hi Experts.

I built with no stripping what so ever because of a library I’m using not running properly with any kind of stripping, I don’t want to go into the details as it’s not relevant.

In the xcode project I there’s a folder “Data/Managed” with all the .net DLLs.
I removed that entire “Managed” folder from the project since I read that the code is all converted into assembly anyways. I built the project and the game ran as usual.

I’m wondering if there can be any side effects to doing this. If not, then why is the folder even there, perhaps it’s just a there as a staging folder and not used at runtime at all?