適切な数のデバイスをサポートする iOS アプリは、少なくとも 2 つの異なるプラットフォーム (armv7 と arm64) 用にコンパイルする必要があります。ビルド プロセスから、生成された IPA ファイルには、基本的に、各プラットフォーム用にコンパイルされた 2 つの完全なバージョンのアプリが含まれているように見えます。私は、App Store がこれら 2 つのバージョンを 2 つの別々のダウンロードに再パッケージ化できるほど賢く、ダウンロード中に実際に必要なバージョンだけが出荷され、特定のデバイスにインストールされることを望んでいました。しかし、iTunes Connect を見ると、そうではないようです。実際、事態はさらに悪化します。
- アプリ用にアップロードした IPA ファイルは、コンピューター上で 16.8 MB です。
- iTunes Connect の「ビルドの詳細」の下にある「圧縮ファイルのサイズ」は、これらの 16.8MB と一致します。
- ただし、「App Store File Sizes」の下で、「Download Size」は 36.8MB と表示されています!!!
- さらに悪いことに、「インストール サイズ」は 48.6MB と表示されています。
それはクレイジーです!「インストール サイズ」が「圧縮ファイル サイズ」よりも大きいのは理解できますが、「ダウンロード サイズ」はなぜ大きいのでしょうか??? ダウンロード後にデバイス上で解凍を行う方がはるかに良いのではないでしょうか? しかし、私は脱線します...
iTunes Connect は、さまざまなデバイス用にアプリの複数のバージョンをアップロードすることをサポートしているようです。少なくとも「App Store ファイル サイズ」リストは、デバイスごとに複数のバージョンを表示できる表で構成されています。
アプリの複数のデバイス/プラットフォーム固有のバージョンをビルドしてアップロードして、単一の「ユニバーサル」バージョンを作成する代わりに、それぞれの「ダウンロード サイズ」と「インストール サイズ」を減らすことは何とか可能ですか?
おまけの質問: 可能であれば、RoboVM でこれを行うにはどうすればよいですか? :)
余談ですが、同一のグラフィックスとオーディオ アセット、実質的に同一のコード ベースを含む Android 上のまったく同じアプリは、わずか 6.0MB です。しかし、これは RoboVM によって導入された必要な肥大化である可能性があります。どうしたら減らせるか、まだまだ検討中です…。