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を開きます。

関連記事)Xcodeでアーカイブしたファイルを再度表示する

その後、確認したいアーカイブを選択後、
右クリックして「Show In Finder」を選択。ファインダーで開きます。

次に、開いたディレクトリにある .xcarchiveファイルを右クリックして、
「パッケージの内容を表示」を選択します。

さらに、Products > Applications の中にある、
.appファイルを右クリックして、先ほどと同様に「パッケージの内容を表示」を選択します。

この中のファイルをサイズの大きい順に並べたら一目瞭然ですね!
あまりにサイズの大きい画像などは、縮小や圧縮をしてみても良いかもしれません。

見事、軽量化に成功!

アプリサイズが大きかった原因が分かってスッキリです!