ノートの端の書き残し

UnityやらC#やら。設計が得意かもしれない。

Unityでアプリの容量を小さくする設定の罠

UnityのBuildSettingを見るとCompressionMethodというものがあります。 f:id:u_osusi:20190124224608p:plain:w300

これはアプリに含まれるリソースを圧縮してくれる設定で、配信できるサイズが制限されているスマートフォン用アプリだとありがたい設定、のように思います。

が、実はここには罠があって、 iOS用のApp Storeで配信されるipaファイルとAndroid用のGoogle Playで配信されるapkファイルは既にzip形式で圧縮されたものなので、CompressionMethodでLZ4やLZ4HCに設定したところで大して容量削減効果はありません。LZ4は伸長スピードがウリの圧縮方法であって圧縮率はそれほどでもなく、むしろ増えるまであります。
ただ、iOSの場合はインストールした時点でipaファイルの解凍が行われるので、その段階まで行くと圧縮設定の効果がしっかり発揮されます。
さらに、App Storeで確認できるアプリ情報の容量は解凍後の容量なので、ぱっと見軽いアプリっぽく見せることもできますね。

よって、残念ながらCompressionMethodはスマートフォン環境で配信時のアプリ容量削減には活用できません。