ObjecTips

Swift & Objective-C で iOS とか macOS とか

Objective-C と Swift の App Store 配布時のファイルサイズの違い

概要

元々 Objective-C のみで作られたアプリでライブラリに Firebase と自前の Objective-C Framework を複数含む。
これに Swift クラスを3つ(3ファイル)追加しアーカイブしたものを iTunes Connect にアップロードして「App Store ファイルのサイズ」から推定 App Store ファイルサイズを表示。

結果

表の左は Xcode 9.3 でビルドして 2018年3月17日 14:18 にアップロード
表の右は Xcode 9.4 でビルドして 2018年6月1日 1:48 にアップロード
(バージョンが揃ってないため正確なベンチにはならないけどざっと比較確認したかったので、、)

デバイスの種類 ダウンロードサイズ インストールサイズ デバイスの種類 ダウンロードサイズ インストールサイズ
Universal 3.69MB 5.17MB Universal 6.05MB 11.8MB
iPod Touch Sixth Generation 3.63MB 5.02MB iPod Touch Sixth Generation 5.95MB 11.6MB
iPhone SE 3.63MB 5.02MB iPhone SE 5.95MB 11.6MB
iPhone 5S 3.63MB 5.02MB iPhone 5S 5.95MB 11.6MB
iPhone 6 3.63MB 5.02MB iPhone 6 5.95MB 11.6MB
iPhone 6 Plus 3.65MB 5.03MB iPhone 6 Plus 5.96MB 11.6MB
iPhone 6s 3.63MB 5.02MB iPhone 6s 5.95MB 11.6MB
iPhone 6s Plus 3.65MB 5.03MB iPhone 6s Plus 5.96MB 11.6MB
iPhone 7 3.63MB 5.02MB iPhone 7 5.95MB 11.6MB
iPhone 7 Plus 3.65MB 5.03MB iPhone 7 Plus 5.96MB 11.6MB
iPhone 8 3.63MB 5.02MB iPhone 8 Plus 5.96MB 11.6MB
iPhone 8 Plus 3.65MB 5.03MB iPhone 8 5.95MB 11.6MB
iPhone X 3.65MB 5.03MB iPhone X 5.96MB 11.6MB
iPad (5th generation) 3.63MB 5.02MB iPad (5th generation) 5.95MB 11.6MB
iPad Wi-Fi + Cellular (5th generation) 3.63MB 5.02MB iPad Wi-Fi + Cellular (5th generation) 5.95MB 11.6MB
iPad (6th generation) 5.95MB 11.6MB
iPad Wi-Fi + Cellular (6th generation) 5.95MB 11.6MB
iPad Air Wifi 3.63MB 5.02MB iPad Air Wifi 5.95MB 11.6MB
iPad Air Wifi + Cell 3.63MB 5.02MB iPad Air Wifi + Cell 5.95MB 11.6MB
iPad Air 2 Wifi 3.63MB 5.02MB iPad Air 2 Wifi 5.95MB 11.6MB
iPad Air 2 Wifi + Cell 3.63MB 5.02MB iPad Air 2 Wifi + Cell 5.95MB 11.6MB
iPad Mini 2 Wifi 3.63MB 5.02MB iPad Mini 2 Wifi 5.95MB 11.6MB
iPad Mini 2 Wifi + Cell 3.63MB 5.02MB iPad Mini 2 Wifi + Cell 5.95MB 11.6MB
iPad Mini 3 Wifi 3.63MB 5.02MB iPad Mini 3 Wifi 5.95MB 11.6MB
iPad Mini 3 Wifi + Cell 3.63MB 5.02MB iPad Mini 3 Wifi + Cell 5.95MB 11.6MB
iPad mini 4 WiFi 3.63MB 5.02MB iPad mini 4 WiFi 5.95MB 11.6MB
iPad mini 4 WiFi + Cellular 3.63MB 5.02MB iPad mini 4 WiFi + Cellular 5.95MB 11.6MB
iPad Pro WiFi 3.63MB 5.02MB iPad Pro WiFi 5.95MB 11.6MB
iPad Pro WiFi + Cellular 3.63MB 5.02MB iPad Pro WiFi + Cellular 5.95MB 11.6MB
9.7-inch iPad Pro 3.63MB 5.02MB 9.7-inch iPad Pro 5.95MB 11.6MB
9.7-inch iPad Pro Cellular 3.63MB 5.02MB 9.7-inch iPad Pro Cellular 5.95MB 11.6MB
10.5-inch iPad Pro 3.63MB 5.02MB 10.5-inch iPad Pro 5.95MB 11.6MB
10.5-inch iPad Pro Wi-Fi + Cellular 3.63MB 5.02MB 10.5-inch iPad Pro Wi-Fi + Cellular 5.95MB 11.6MB
12.9-inch iPad Pro (2nd generation) 3.63MB 5.02MB 12.9-inch iPad Pro (2nd generation) 5.95MB 11.6MB
12.9-inch iPad Pro Wi-Fi + Cellular (2nd generation) 3.63MB 5.02MB 12.9-inch iPad Pro Wi-Fi + Cellular (2nd generation) 5.95MB 11.6MB

まとめ

ダウンロードベースで2.3MB程度、インストールベースで6.5MB程度が増加した。
もし Swift ソースに複数の Swift バージョンが含まれている場合はランタイムを内包するためもうちょっと容量が増えるのかも知れない。(未確認)
2つのビルドの期間に新しい iPad が発表されているのでデバイスのリストに差異が出ている。
アップロード時にサーバ側で評価された値がそのまま表示される様だ。