XCodeのビルド、キャッシュ関連フォルダまとめ

f:id:bamboohero:20210520003532p:plain iOSアプリ開発をしていると、急にビルドが失敗するようになったり、実機にアプリがインストールできなくなったりすることがあります。

そういうとき、DerivedDataフォルダを削除する良い、とか、XCodeのキャッシュを削除しましょうとかっていう記事を見て、よくわからないままとりあえずフォルダを削除して対処していました。

今後のためにと思い、これらのフォルダについて調べたのでまとめておきます。

~/Library/Developer/Xcode/DerivedData/

XCodeでアプリをビルドすると、~/Library/Developer/Xcode/DerivedData/配下にアプリのビルドデータが保存されます。

$ ls ~/Library/Developer/Xcode/DerivedData/
BambooCIApp-bjyknapprndniagnlhzetakqdtvb  ModuleCache.noindex

BambooCIAppはテスト用に作ったアプリで、このフォルダの下にこのアプリのビルドデータが保存されています。
ModuleCache.noindexには複数のアプリで共通で使用するモジュールのデータが入っているそうです。

DerivedDataフォルダはアプリをビルドすることで生成されるので、削除しても安全です。
アプリのビルドがうまくいかないときは、このフォルダを削除してみるのが良いでしょう。

なお、ビルドデータを削除するということは、一からビルドし直すことになるので削除後の初回のビルドは時間がかかります。

~/Library/Developer/Xcode/Archives

XCodeのメニューバー > Product > Archiveをクリックすると、ローカルでアプリをアーカイブすることができます。
こうするとアーカイブデータが~/Library/Developer/Xcode/Archives配下に保存されます。

$ 2019-07-11  2019-07-12  2020-02-06  2020-02-07  2020-02-10  2020-02-20

アーカイブデータの中にはdSYMなど有用なファイルが含まれますが、アーカイブフォルダは容量をかなり食うので、不要であれば削除するのが良さそうです。

シミュレーター内のデータ

シミュレーター内のアプリを削除しても、アプリを通じて保存されたファイルや写真、CoreDataデータなどは残ったままです。
これらを削除してシミュレーターをファクトリリセット状態にするには、シミュレーターのメニューバー > Device > Erase All content and settingsをクリックします。
これでシミュレーター内の不要なデータを削除できます。

~/Library/Developer/Xcode/iOS DeviceSupport

XCodeから実機にアプリをインストールすると、~/Library/Developer/Xcode/iOS DeviceSupportフォルダに開発サポートのためのファイル群が保存されます。
このフォルダを削除しても特に問題は起きないので、Macのストレージ容量を確保したいときなどに削除すると良さそうです。

~/Library/Caches/com.apple.dt.Xcode

~/Library/Caches/com.apple.dt.XcodeフォルダにはXCodeや周辺ツールのキャッシュデータが保存されています。
XCode周りで何か問題が起きたとき、Macのストレージ容量を確保したいときは、このフォルダを削除すると良さそうです。

~/Library/Caches/org.carthage.CarthageKit

Carthage関連のキャッシュデータは~/Library/Caches/org.carthage.CarthageKitに保存されています。
Carthage関連で何か問題が起きたとき、Macのストレージ容量を確保したいときは、このフォルダを削除すると良さそうです。

CocoaPodsのキャッシュデータ

CocoaPodsではキャッシュデータを削除する専用のコマンドが用意されています。

$ pod cache clean --all

参考

www.raywenderlich.com