Mac の Xcode を削除し、必要なツールとアーカイブを残す
Xcode をアンインストールする前に、Apple 向け開発をやめるのか、大きなエディタだけを削除するのかを決めます。Xcode 本体、別途インストールした Command Line Tools、シミュレータランタイム、リリースのアーカイブは別のものです。一括削除はビルド環境や必要なシンボルを失う原因になります。
残すものを先に決める
Apple の Command Line Tools の説明は、単体パッケージと Xcode 内のツールを区別しています。今後も必要なら単体版を残します。ただし、すべての Xcode コマンドが含まれるわけではありません。
| 項目 | 削除前の判断 | 復元方法 |
|---|---|---|
| Xcode.app | 必要な別バージョンを残す | ゴミ箱から戻すか対応版を再インストール |
| 単体の Command Line Tools | 今後のコマンドラインビルドを確認 | 対応パッケージを再インストール |
| シミュレータとランタイム | テストデータと必要な OS を残す | ランタイムを再取得、消した状態にはバックアップが必要 |
| DerivedData とキャッシュ | ソースと依存関係が取得可能か確認 | 再ビルドと再インデックス |
| アーカイブと署名データ | 配布済みビルドと必要な署名情報を残す | 検証済みバックアップから復元、再ビルドでは代替不可 |
容量を減らすだけなら、先に Xcode のストレージ整理を参照します。エディタを残し、キャッシュを選んで整理する手順です。
アーカイブと署名データを保存する
削除前に Organizer でアーカイブを確認し、必要なビルドを独立した保存先にコピーします。Apple のアーカイブガイドでは配布用ビルドとして説明されています。一般的な Archives の場所は、Mole がキャッシュ整理から明示的に除外する場所でもあります。
~/Library/Developer/Xcode/Archives
配布済みビルドは対応する dSYM と一緒に保管します。Apple のデバッグ情報の説明では、バイナリと dSYM のビルド UUID が一致する必要があります。ソースを再ビルドしても元のシンボルの代わりにはなりません。
必要なプロビジョニングプロファイルと署名 ID も残します。Apple の署名情報のバックアップ手順によると、プロファイルを再取得しても失われた秘密鍵は戻りません。アンインストールのためにキーチェーンや署名データまで消さないでください。
まず Xcode アプリを削除する
ビルドとテストを終え、Xcode と Simulator を終了し、削除する Xcode を特定します。Apple の Finder での削除手順に従い、アプリをゴミ箱へ移します。複数ある場合は実際の場所を確認し、似た名前のアプリをまとめて消さないでください。
残すツールの動作確認が終わるまで、ゴミ箱に保持します。戻せるのはそこに残る間だけです。後日の再インストールには対応版とダウンロードが必要です。完全削除までは容量を使うため、空き容量が変わらなくても移動失敗とは限りません。
Command Line Tools は別に判断する
Apple の開発用ディレクトリの設定手順にある読み取り専用の確認です。
xcode-select --print-path
Xcode 内のパスならそのアプリのツールが選択されています。/Library/Developer/CommandLineTools なら単体パッケージです。エラーは有効な開発用ディレクトリがないという意味で、プロジェクトのソースが消えたわけではありません。
単体版が必要なのに未インストールなら、xcode-select --install でインストーラを要求し、完了させます。そのディレクトリが存在してから選択します。
sudo xcode-select --switch /Library/Developer/CommandLineTools
xcode-select --print-path
次のコマンドで単体版のパスが表示されることを確認します。後で戻す場合は同じ Apple の手順で、実在する Xcode を選びます。パスの変更では不足するツールは入りません。
単体版も不要なら、Apple のインストールガイドに /Library/Developer/CommandLineTools の削除手順があります。必要性を確認してから正確な対象にだけ使ってください。ゴミ箱を通さない直接削除です。上位の /Library/Developer は残します。
シミュレータとキャッシュは別作業にする
最後の Xcode を消す前に、Apple のコンポーネント管理手順で不要なランタイムを確認します。現在の文書では設定画面を Components と呼びます。ランタイムと仮想デバイスは別に判断し、詳細は iOS シミュレータの整理を参照します。
DerivedData とキャッシュは先の Xcode ストレージガイドで特定した出力だけを整理します。再生成にはソース、依存関係、必要なツールチェーンが要ります。Archives やプロビジョニング情報は対象にせず、Developer 全体を消して終わらせないでください。
Homebrew と残すビルドを確認する
Homebrew のインストール要件は、formula をソースからビルドする場合に Command Line Tools または Xcode を挙げています。エディタを開かなくても単体版が必要な場合があります。ただし xcodebuild など Xcode 専用ツールが必要な作業の代わりにはなりません。
選択された開発用ディレクトリを確認し、今後使う代表的なビルドを試します。失敗したら不足するツールなのか依存関係なのかを読んで判断し、追加削除や再インストールを急がないでください。確認できるまでアプリを戻せる状態にします。
Mole の役割
Mole Mac のアプリでは Xcode を削除でき、データの確認を促す注意が表示されます。選択内容を確認するためのもので、関連フォルダをすべて捨ててよいという意味ではありません。
クリーンでは開発用キャッシュ一覧から Xcode Archives を除外し、内蔵ホワイトリストにも Archives のパスがあります。この保護はビルドや署名情報のバックアップではないので、削除前に別途保存します。
よくある質問
Xcode を削除しても Homebrew は使えますか?
使えますが、ビルドに必要なら対応する Command Line Tools を残すかインストールし、開発用ディレクトリと実際に使うビルドを確認してください。
Xcode.app を削除するとシミュレータもすべて消えますか?
そうとは限りません。最後の Xcode を消す前に、コンポーネントとシミュレータのガイドに従い、ランタイムとデバイスデータを別に確認します。
ソースがあれば Archives を消してもよいですか?
配布済みビルドのアーカイブと対応シンボルは残します。再ビルドで同じ UUID になる保証はなく、Xcode の再インストールでも古い署名秘密鍵は戻りません。