PONOS Advent Calendar 2020の21日目の記事です。
昨日は@UdonLoveさんの「Monobehaviourのイベント関数をなるべく使わない」でした。
はじめに
時間のない方のために先に結論を言っておきます。
ビルド対象から32bitアーキテクチャを排除すれば、サイズが小さくなりビルド時間も短縮できる!
以下、それについて紹介している記事になります。
Architecture設定の警告
Uity2019.4で開発中のある日、
PlayerSetingsのiOSビルド設定にて警告が出ていることに気付きました。
日本語にすると「ARMv7(32bits)は非推奨かつUnity2020.1から項目削除されますよ」という内容です。
このArchitectureという項目についてはデフォルトのまま「Universal」にしていたのですが、それだとARM64(64ビット)とARMv7(32ビット)のどちらも有効になっていたようです。
32ビット切り捨て
数年前なら兎も角、流石にもう32ビットの端末は切り捨てて良いだろうと考えます。
Apple A6を使ったiPhone5/iPhone5c/iPad4以前の機種が該当しますが...もういいですよね?
Architectureという項目を「Universal」から「ARM64」に変更しました。
これで警告も消えたし、スッキリいい気分!
その時はそれだけで満足していました。
アプリサイズ減
そして翌日、いつものように端末ビルドを手動で行っていると、あれ?もう終わってる...
アプリサイズもいつもより小さい気がする...
ということで、調査してみた結果が以下の表になります。
Architecture設定 | Universal | ARM64 | 比較 |
---|---|---|---|
Unity iOS端末ビルド時間 | 7分 | 7分 | 変わらず |
Xcode Archive時間 | 11分 | 6分 | 45%減 |
ipaファイル作成時間 | 17分 | 9分 | 47%減 |
Archiveサイズ | 1.32GB | 0.74GB | 44%減 |
ipaファイルサイズ | 78.4MB | 61.1MB | 22%減 |
アプリサイズ | 74.8MB | 58.3MB | 22%減 |
※MacPro(Late2013)での計測です。
それよりもビルド時間減
アプリサイズが小さくなったことも嬉しいですが、ビルド時間がほぼ半減!というのがとても嬉しいです。
無駄な待ち時間が減り、作業が捗ります。
もちろん、本当に32ビットアーキテクチャの端末を切り捨てちゃっていいか否かは方針にもよるので、事前にチーム内でご相談ください。
以上
明日は@caramel_cafeさんです。