SafeDisk AI

libtool Can't Write To Output File: No Space Left On Device On macOS Runner

When a GitHub Actions macOS job fails during libtool, xcodebuild, archive, or link steps with No space left on device, the failing command is usually the messenger. The real fix is to separate runner temp files, workspace artifacts, Xcode caches, simulator runtimes, and required toolchain state before adding cleanup.

Read-only first

Capture the runner evidence before deleting Xcode or simulator state.

Use a short read-only scan to see what filled the runner, then turn repeat failures into a safe/review/do-not-touch cleanup policy.

df -h; du -sh "$PWD" "$RUNNER_TEMP" "$HOME/Library/Developer/Xcode/DerivedData" "$HOME/Library/Developer/CoreSimulator" "$HOME/Library/Caches" 2>/dev/null
Request $99 invoice Use CI scan View sample policy
Shortest paid path

Want a reusable macOS runner cleanup policy?

The $99 Team Storage Pilot reviews one representative runner scan or failing workflow and returns a 48-hour policy for safe cache cleanup, review-first runtimes, and protected artifacts.

No repository secrets, remote access, or source file contents required.

First Split The Failure

Minimal Evidence Step

- name: Capture macOS runner storage evidence
  if: runner.os == 'macOS'
  shell: bash
  run: |
    df -h
    xcodebuild -version
    xcrun simctl list runtimes | sed -n '1,100p'
    du -sh "$PWD" "$RUNNER_TEMP" "$HOME/Library/Developer/Xcode/DerivedData" "$HOME/Library/Developer/CoreSimulator" "$HOME/Library/Caches" 2>/dev/null || true

Safe Cleanup Order

  1. Capture disk usage before cleanup so the next failure can be compared.
  2. Delete current-job temp files only after they are no longer needed.
  3. Clean DerivedData and package caches at a predictable boundary.
  4. Delete unavailable simulators before touching required runtimes.
  5. Keep archives, dSYMs, result bundles, and required platform runtimes behind review.
  6. Print disk usage after cleanup and keep enough headroom for the largest archive/link step.

Run the read-only CI scan

The scan captures runner storage, Xcode, simulator, workspace, temp, and cache evidence, then lets you preview the first policy locally in the browser.