クラッシュシンボルを失わずに古い Xcode Archives を削除する
AskClean チーム · 更新日 2026-07-31
Xcode Archive を削除するのは、対応するアプリの配信が終了し、今後その dSYM でクラッシュを解析する必要もないと確認してからです。Xcode Organizer で一つずつ確認し、App Store・TestFlight・Enterprise・Ad Hoc で現役のビルドは残し、引退済みのものだけをゴミ箱へ移してください。

Archives が DerivedData と違う理由
Product > Archive を実行するたび、Xcode は配布用ビルドを .xcarchive バンドルとして保存します。既定の場所は ~/Library/Developer/Xcode/Archives で、日付ごとに整理され、Organizer にも表示されます。長く運用しているアプリでは、リリース候補、TestFlight、正式版が何世代も積み上がります。
DerivedData はソースから作り直せる一時データですが、Archive には、そのリリースで実際に生成されたバイナリ、メタデータ、dSYM が含まれる場合があります。Apple の説明どおり、dSYM は UUID で特定のバイナリと結び付いています。同じコミットを再ビルドしても、元のシンボルの代わりにはなりません。
つまり削除コストが違います。DerivedData なら次回のビルドとインデックスが遅くなるだけです。Archive を誤って削除すると、そのビルドのクラッシュスタックを関数名やソース位置へ戻せなくなる可能性があります。
削除前に「残すもの」を決める
Finder の日付だけで判断せず、Window > Organizer から Archives を開いてください。アプリを選び、各項目のバージョン、ビルド番号、作成日、配布状況を確認します。この文脈があれば、古そうに見えるフォルダ名だけで判断するより安全です。
現在 App Store で提供中のバージョン、稼働中の TestFlight ビルド、まだ利用されている Enterprise / Ad Hoc ビルド、クラッシュ調査期間内の旧正式版は保持します。再エクスポート、署名確認、インシデント対応で使う基準ビルドも残してください。
アップロード成功だけを理由にローカル Archive を捨てないでください。設定によって Apple にシンボルが送られている場合はありますが、Apple のデバッグ資料も配布した各ビルドのアーカイブ保持を勧めています。ローカル Archive は、バイナリ、dSYM、バージョン、ビルド番号を結び付ける明確な記録です。
- Window > Organizer を開き、Archives を選択します。
- 正式版、TestFlight、Enterprise、Ad Hoc で現在使われているバージョンとビルド番号を記録します。
- 必要なシンボルのアップロードを確認し、保持規程がある場合はバックアップ済みストレージへコピーします。
- 置き換え済みのリリース候補、放棄した内部ビルド、調査期間を過ぎた旧版だけを削除候補にします。
- Organizer から一つずつ削除し、必要な項目が残っていることを確かめてからゴミ箱を空にします。
日付だけの保持ルールは危険です。新バージョン公開後も、古い正式版がユーザー端末に長く残ることがあります。
削除せずにサイズを測る
Finder で Command + Shift + G を押し、~/Library/Developer/Xcode/Archives を開きます。リスト表示にして表示オプションの「すべてのサイズを計算」を有効にし、サイズ順に並べます。これは読み取り専用の確認です。
ターミナルなら du -sh ~/Library/Developer/Xcode/Archives で合計を、du -sh ~/Library/Developer/Xcode/Archives/* で日付フォルダごとのサイズを確認できます。どちらもファイルを変更しません。
.xcarchive は Finder 上では一つのパッケージです。調査用のコピーに「パッケージの内容を表示」を使うのは構いませんが、正式な Archive の内部ファイルを部分的に削除しないでください。見た目は残っていても、エクスポートやシンボリケートができない壊れたアーカイブになります。
もっとも安全な削除手順
第一選択は Organizer です。アプリ、バージョン、ビルド番号を見ながら、引退を確認した Archive だけを Delete できます。Finder で日付フォルダを推測するより、対象を取り違えにくくなります。
Organizer が古い、または破損したバンドルを読めない場合だけ Finder を使います。Info.plist の情報を監査記録と照合し、該当する .xcarchive 一つだけをゴミ箱へ移してください。日付が古いという理由でフォルダ全体を消さないでください。
すぐにゴミ箱を空にせず、Organizer を開き直し、必要なビルドが残っていることを確認します。シンボルが重要なら代表的なクラッシュレポートも検証してください。完全削除に急いでも、判断の正確さは上がりません。
増え続けない保持ポリシーを作る
保持期間は単純な経過日数ではなく、配布状態で決めます。現在配信中のビルドはすべて保持し、旧正式版はクラッシュを受け付ける期間まで、Enterprise ビルドは導入先で失効するまで残します。法務・監査・重大インシデント用の節目ビルドは規程に従います。
リリース手順に、Archive の保存場所、dSYM のアップロード状況、取得権限、削除可能になる条件を記載してください。外付けやクラウドへ移す場合は、コピーが見えるだけで安心せず、復元とエクスポートを実際に試します。
大きなリリースサイクルごとに短時間の棚卸しを行えば、起動ディスクが満杯のときに慌てて消さずに済みます。緊急時は DerivedData など再生成可能なデータを先に片づけ、Archives は落ち着いて監査してください。
AskClean が Archives を扱う方法
AskClean は Xcode Archives を通常の再生成可能キャッシュとして扱いません。.xcarchive を個別に一覧化し、不可逆なコストを警告するため、フォルダ全体を一括で消す必要がありません。
最終判断は利用者が行います。AskClean はサイズを示し、承認された項目をゴミ箱へ移せますが、製品のサポート期間を決めたり、失われた dSYM を作り直したりはできません。自動化はリリース成果物を見せるところまでで、その価値を勝手に決めません。
削除境界:再生成できるもの、できないもの
古さや大きさより先に、復元コストで分類します。
| 項目 | 既定の場所 | 削除した結果 |
|---|---|---|
| DerivedData | ~/Library/Developer/Xcode/DerivedData | ソースから再生成されます。次回のビルドと索引作成が遅くなります。 |
| Xcode Archive | ~/Library/Developer/Xcode/Archives | 保存済みバイナリ、メタデータ、対応 dSYM を失う可能性があります。 |
| 書き出した dSYM | チームのリリース成果物ストレージ | 配布済みバイナリに残された唯一のシンボルかもしれません。 |
| 引退済み内部ビルド | ~/Library/Developer/Xcode/Archives | 導入もサポートも終了したと確認してから削除候補にします。 |
よくある質問
~/Library/Developer/Xcode/Archives を丸ごと削除できますか?
一括削除を安全とは言えません。配信済みビルドの正確なバイナリと dSYM が含まれるため、現役の正式版、TestFlight、Enterprise、Ad Hoc、および調査対象の旧版は残してください。
Archive を消すと App Store のアプリも消えますか?
消えません。ローカルの .xcarchive を削除しても、App Store Connect やユーザー端末には影響しません。ただし、自分の手元にある再エクスポートやシンボリケート用の成果物は失われます。
同じコミットを再ビルドすれば dSYM を再現できますか?
信頼できる代替にはなりません。dSYM は配布済みバイナリの UUID と一致する必要があり、新しいビルドは別のバイナリ ID を持ちます。
Archives と DerivedData はどちらを先に削除しますか?
通常は DerivedData が先です。再生成でき、失うのはビルド時間だけです。Archives はリリース単位の監査が必要で、誤削除するとデバッグ証拠が戻らない可能性があります。
参考資料