In an iOS binary segments have a minimum size equal to the minimum memory page size for that architecture. This is 16Kb on modern devices.
Binary page size
You generally cannot change the size of a binary by anything other than increments of 16Kb.
This results in "unmapped" portions of the binary that are not attributed to your code. In the treemap this will show in a separate color ■. You can reduce the amount of size wasted in this space by using static frameworks and reducing the number of dynamic frameworks.
In PR comment size diffs the total size changed will be displayed. This total change does not take into account the unmapped size if you only changed code. This is to make sure a small change that just pushes you over the page size limit doesn't appear to have a large binary size affect. If you introduce a new binary the unmapped size will be included.
Emerge is unable to break down all packaged DEX without proguard mappings. We recommend uploading AABs, as AABs include proguard mappings in the bundle.
If you do not upload an AAB or zipped APK(s) with proguard mappings, we will show an "Unmapped dex" node that accounts for all the dex we detect is obfuscated.
Note: Emerge is able to deobfuscate resource and asset names without any additional information needed with uploads.
Updated 3 months ago