Xcode で Derived Data を簡単に削除する方法

プログラミングで出逢った出来事

このところ Xcode で、クリーンビルドだけでは問題が解消しなくて Derived Data の削除が必要になることがたびたびある気がします。

そこで簡単に Derived Data を削除する方法を整理しておきます。


Xcode で何か不思議なビルドエラーが発生したときに、クリーンビルドを実行すると問題が解消する場合があります。

以前のビルドで出来た古い中間ファイルが残っているとバイナリのリンクミスなどが発生することがありますけれど、そんなときには「クリーンビルド」を実行すると解消する場合がよくあります。

ただ、このところは何かコードに問題がある訳でもないのにクリーンビルドを実行しても直らないことが多くみられました。

クリーンビルドは K ですぐに実行できます。

Derived Data

そんなときは中間ファイルを削除してあげると直ったりします。

中間ファイルとは一般に Derived Data と呼ばれるもので、ビルド時に生成されるバイナリファイルやデータファイルの他、ビルドやテストなどのログやソースコードのシンボル情報など、プログラミングの途中でできるさまざまなデータファイルが含まれます。

先ほどのクリーンビルドで消去されるのは、この中の一部のデータになります。具体的には Build の中の、ビルド対象のスキームが受け持つターゲットに関するデータです。ビルド中に生成される Intermediates/DebugIntermediates/Release 内の一部と、ビルドによって出来上がった成果物が保存される Products/DebugProducts/Debug 内の一部がそれにあたります。

ビルドデータを削除する

Xcode では Derived Data も簡単に削除できるようになっています。

Xcode のメニューから Product を選択してキー を押すと、それまでClean だったところがClean Build Folder... に変化します。

このメニューを選択することで、より多くのビルドデータを削除できます。

確認メッセージが表示されるのでCleanボタン を押せば、これで削除は完了です。

こうすることで具体的には、Xcode 6.2 では中間ファイルの内の Build フォルダーが丸ごと削除される様子でした。つまり、プロジェクトに関係する全てのターゲットの中間ファイルと成果物が削除されます。

ログやソースコードのシンボル情報などは削除されずに残ります。

ビルドデータの削除は K ですぐに実行できます。

Derived Data を完全に削除する

これでも問題が解消されない場合は Derived Data 全体を削除する方法もあります。

こちらは少し手間が増えるのですが、まずは Xcode のメニューの Window Organizer とたどり、オーガナイザーを起動します。

そして、上側のタブバーからProjects を選択したら、左側から目的のプロジェクトを選択して、中央上側のDerived Data と書かれたところに注目します。

ここに、このプロジェクトの Derived Data が保存されているフォルダーのパスが表示されていて、その右側にはDeleteボタン があります。このボタンを押すことで Derived Data を丸ごと削除できるようになっています。

確認メッセージが表示されたらDeleteボタン を押せば、これですべての中間ファイルが削除されます。具体的には、さきほど確認した Derived Data の保存場所として表示されていたフォルダーがまるっと削除されることになります。