iOSアプリのサイズを軽量化したときの話
先週、iOSアプリのプロジェクトを見直し、35.8 MB
から 17.3 MB
まで 軽量化しました。
その方法とは「参照しなくなったファイルは、すぐプロジェクトから消しましょう」というだけのお話です。
iOSアプリのサイズを最適化する
Appleは、iOS11の公開にあわせて、モバイルデータ通信時にApp Storeから
アプリをダウンロードするときの容量制限を 100 MB から 150 MB に拡大しました。
https://developer.apple.com/news/?id=09192017b
さらに、iPhone端末自体の大容量化や、LTEや5G回線により
高速通信が可能になったことで、大きなサイズのアプリも不自由なく利用できるようになりました。
とは言え、アプリのサイズはもちろん今でも小さいほうがいいです!
私自身も、当初からアプリのサイズは小さくするように開発していました。
写真はその都度ダウンロードするため、アプリの中には5枚くらいしか入ってない…はずでした。
私がはじめに着目したのは、データベースファイルです。
SQLiteファイルを最適化する
私の使用しているSQLiteファイルには、テキストと写真のURLなどが保存されています。
調べてみると、SQLiteはテーブルからデータを削除したらすぐSQLiteファイルのサイズが小さくなる訳では無いようです。
ファイルの中で利用されていた領域はすぐに削除されるのではなく次にデータが追加された時に再利用されます。
https://www.dbonline.jp/sqlite/manage/index1.html
私のアプリではデータの削除はしていませんので、これは関係ありませんでした。
アプリサイズの内訳をチェックする
今回、ビンゴだった解決策はこちらです。
アプリサイズの内訳を確認してみたところ、不要ファイルがたくさん含まれていました。
(まさか、プロジェクトに含まれてたら使ってなくても一緒にコンパイルされてしまうなんて、、)
その方法は、まず以下の手順でOrganizerを開きます。
その後、確認したいアーカイブを選択後、
右クリックして「Show In Finder」を選択。ファインダーで開きます。
次に、開いたディレクトリにある .xcarchive
ファイルを右クリックして、
「パッケージの内容を表示」を選択します。
さらに、Products > Applications
の中にある、.app
ファイルを右クリックして、先ほどと同様に「パッケージの内容を表示」を選択します。
この中のファイルをサイズの大きい順に並べたら一目瞭然ですね!
あまりにサイズの大きい画像などは、縮小や圧縮をしてみても良いかもしれません。
見事、軽量化に成功!
アプリサイズが大きかった原因が分かってスッキリです!