After migrating from 4.5.1 to 4.9.1, our IPA size increased by a lot. Investigating the contents reveal several editor-only assets were included inside the IPA, like engine debug materials, tutorials, icons, meshes, sounds and fonts. I did some digging and found different causes behind this:
-
Editor assets being listed as startup packages on BaseEngine.ini, which causes them to be always referenced even in shipping builds (there’s a comment about “console platforms removing debug materials”, but no indication of how this should be done).
-
FAssetReference variables which contain assets used only while in the editor but are not wrapped with #if WITH_EDITOR tags (example: PreviewShadowsIndicatorMaterialName).
-
Assets referenced in *Editor INI files being cooked in shipping builds for no reason (tutorials).
I found that it is possible to remove the start up packages in platform-specific configs by doing this:
[Engine.StartupPackages]
-Package=/Engine/EngineDebugMaterials/BoneWeightMaterial
-Package=/Engine/EngineDebugMaterials/DebugMeshMaterial
-Package=/Engine/EngineDebugMaterials/GeomMaterial
-Package=/Engine/EngineDebugMaterials/HeatmapGradient
-Package=/Engine/EngineDebugMaterials/LevelColorationLitMaterial
-Package=/Engine/EngineDebugMaterials/LevelColorationUnlitMaterial
-Package=/Engine/EngineDebugMaterials/MAT_LevelColorationLitLightmapUV
-Package=/Engine/EngineDebugMaterials/ShadedLevelColorationLitMaterial
-Package=/Engine/EngineDebugMaterials/ShadedLevelColorationUnlitMateri
-Package=/Engine/EngineDebugMaterials/TangentColorMap
-Package=/Engine/EngineDebugMaterials/VertexColorMaterial
-Package=/Engine/EngineDebugMaterials/VertexColorViewMode_AlphaAsColor
-Package=/Engine/EngineDebugMaterials/VertexColorViewMode_BlueOnly
-Package=/Engine/EngineDebugMaterials/VertexColorViewMode_ColorOnly
-Package=/Engine/EngineDebugMaterials/VertexColorViewMode_GreenOnly
-Package=/Engine/EngineDebugMaterials/VertexColorViewMode_RedOnly
-Package=/Engine/EngineDebugMaterials/WireframeMaterial
But it doesn’t feel future proof enough.