And learned that due to Apple’s DRM encryption, the executable gains almost no compression.
What I don’t get is that I have a fairly small project, that I haven’t done that much with yet, and the executable alone is at 16.6MB. This is with level 3 stripping pro license. So I guess that means we have absolutely no chance of being under 20MB, but I don’t understand why our executable is so big?
Is there anything I can do to reduce the executable size?
I understand how to lower my asset usage, but I am talking about the actual executable file, that is not compressed when uploaded to apple due to their DRM encryption. Mine is currently at 9.5, and wondering if there’s anything I can do to lower it.
im also having a huge problem with this, my android version is 15 mbs, and my iOS is 50, but yes it seems to be breaking down to that i exported for armv6 and armv7,
make sure when you upload your app for the first time it is ONLY armv7, or else later you can not only export for that and youll need to include armv6
seems like the only solution is to remove the old version completely from the app store and upload the new one with a different bundle id and name
Only doing ARM7 at the moment. Just seems odd to me that our executable size is at 9.5MB already at this early stage, guess I should see what a blank project is.
Blank app full stripping, release build, is 7.7MB executable. Has the default Unity app size gone up over the years? I see people talking about having apps under 10MB, I don’t see how that’s possible if our executable with no assets is at 9.5.
Something I noticed when I was trying to reduce build size was that having Javascript in your project added 2 Megs to the build size. My entire project is in C# so I couldn’t figure out why I was seeing the additional 2 Megs. After doing some research, it turns out having Javascript anywhere in your project even if you don’t use the code, requires Boo to be added to your build. Boo takes up 2 Megs in the build. What was so unnerving about this is I had some old Javascript classes that I was not using in my game. They were there only for learning purposes. But simply because they existed within the project folder, that triggered Boo to be added to the build. Even though it was unused by the game. I removed all javascript classes and instantly saved 2 Megs.
I’ve never been able to find any documentation that explains the dependency of Unity’s Javascript to Boo or that that it adds 2 Megs to your build even if you don’t use the Javacript for anything.
The 2Meg Boo addition appears to be something they may have fixed. I just imported a Javascript class into my project and ran the build. Looking at the Editor log does not show Boo as a dependency.
Open the console window in Unity. In the Unity menu Window/Console.
You’ll see several tabs at the top of the console window. Click on Open Editor log.
Make sure you have Editor.log chosen in the left pane under Unity. It should default here since you chose Editor.log but I’ve noticed sometimes it does not. just make sure on the left side of the window you have Editor.Log highlighted under Unity.
Do a build of your project. Just a Build. Not Build and Run.
I like to have the Editor.log window open while its building to watch the progress.
Scroll all the way down to the end of the log and then start scrolling up.
You should see how much real estate every asset consumes in your build titled:
Used Assets, sorted by uncompressed size:
Above that you’ll see how much each asset type consumes (Textures, Meshes etc.)
Finally above that you’ll see dependencies:
Mono dependencies included in the build
System.Core.dll
mscorlib.dll
Assembly-CSharp-firstpass.dll
Assembly-CSharp.dll
These are all the libraries your game has to include depending on the language you are using etc.
You should see Included DLLs in that list with Textures, Meshes, Animations etc. If you are using Javascript, one of those DLLs used to say BOO and added 2 megs to the Included DLLs.
@chaneya, thanks that did help me locate a few assets being included that I didn’t expect. Mine even has one less than yours in mono dependencies, doesn’t show System.Core.dll
Also interesting to note that almost none of this info in the editor.log exists when building from Windows, that seems odd/broken.
Unfortunately, didn’t see anything to help me nail down the executable file size.
Here are 3 links that have helped me. But I have yet to submit a game to the Apple Store so I’m not exactly sure how my build size will ultimately come out.