iOS アプリのサイズは App Store へアップロードした後に増加します。過去の Xcode ではこの増分を概算する機能 (Estimate Size) が用意されていましたが、この値はあまり正確ではありませんでした。また、最新の Xcode では、そもそもこの機能自体がなくなっています。
本記事では、この概算を手動で行う方法を紹介します。
まず Xcode から .ipa ファイルを出力します。ここで .ipa ファイルのサイズを調べておきます。下の例は Unity の SpaceShooter サンプルを出力したものですが、20,009,257 byte = 20 MB ほどのサイズであるようです。
$ ls -l Unity-iPhone.ipa -rw-r--r-- 1 keijiro staff 20009257 Jun 16 17:47 Unity-iPhone.ipa
.ipa ファイルを unzip コマンドで展開します。展開されたディレクトリの中、実行バイナリが配置されているディレクトリへと移動します。
$ unzip Unity-iPhone.ipa $ cd Payload/spaceshooter.app/
otool コマンドを使って暗号化対象となる領域のサイズを特定します。
$ otool -l spaceshooter | grep cryptsize cryptsize 14139392 cryptsize 14434304
この領域は AppStore 側での暗号化処理の結果、圧縮率が極端に低下します。大まかにこれの合計量が AppStore 側での増分と考えることができます。
AppStore 上でのサイズをより正確に計算するには、これらの領域に乱数スクランブルをかけたうえで、全体を再圧縮してみるというのが理想的です。ですが、単にこの合計値を元の .ipa ファイルのサイズに足した値を、最悪ケースとして想定しておく、というのでもよいでしょう。正確ではありませんが、目安にはなります。
20,009,257 + 14,139,392 + 14,434,304 = 48.6 MB
結論として、このアプリは最悪のケースで 48MB 程度になるのではないかと予想されます。
0 コメント