xcode-build-analyzer
Analyze Xcode build logs — timing, warnings, errors, slow compiles, and build history from DerivedData.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/alexissan/xcode-build-analyzerXcode Build Analyzer
Analyze Xcode build performance, warnings, errors, and history by reading DerivedData build logs on macOS.
Requirements
- macOS only — reads from
~/Library/Developer/Xcode/DerivedData/ - Xcode must be installed and have built at least one project
- plutil, gunzip, sqlite3 (all pre-installed on macOS)
- Full Disk Access may be required depending on the process running queries
Key paths
DERIVED_DATA=~/Library/Developer/Xcode/DerivedData
Each project has a folder named <ProjectName>-<hash> containing:
info.plist— project workspace path and last accessed dateLogs/Build/LogStoreManifest.plist— structured index of all builds (timing, status, warnings, errors)Logs/Build/*.xcactivitylog— gzip-compressed SLF build logs with per-step timing and full compiler output
Important: All queries are read-only. Never modify DerivedData contents.
List all projects in DerivedData
for dir in ~/Library/Developer/Xcode/DerivedData/*-*; do
[ -d "$dir" ] || continue
NAME="$(basename "$dir" | sed 's/-[a-z]*$//')"
WORKSPACE="$(plutil -extract WorkspacePath raw "$dir/info.plist" 2>/dev/null || echo "unknown")"
LAST_ACCESS="$(plutil -extract LastAccessedDate raw "$dir/info.plist" 2>/dev/null || echo "unknown")"
echo "$NAME | $WORKSPACE | Last accessed: $LAST_ACCESS"
done
Build history for a project
Parse the LogStoreManifest.plist for structured build data. This is the most reliable source — it contains timing, error/warning counts, and scheme info for every build without needing to decompress logs.
# Replace PROJECT_DIR with the project's DerivedData folder
# To find it: ls ~/Library/Developer/Xcode/DerivedData/ | grep -i "ProjectName"
PROJECT_DIR="$(ls -d ~/Library/Developer/Xcode/DerivedData/PROJECT_NAME-* 2>/dev/null | head -1)"
MANIFEST="$PROJECT_DIR/Logs/Build/LogStoreManifest.plist"
plutil -convert json -o - "$MANIFEST" 2>/dev/null | python3 -c "
import json, sys
from datetime import datetime, timezone, timedelta
data = json.load(sys.stdin)
EPOCH = datetime(2001, 1, 1, tzinfo=timezone.utc)
builds = []
for uid, log in data.get('logs', {}).items():
start = log.get('timeStartedRecording', 0)
stop = log.get('timeStoppedRecording', 0)
duration = stop - start
obs = log.get('primaryObservable', {})
dt = EPOCH + timedelta(seconds=start)
builds.append({
'date': dt.strftime('%Y-%m-%d %H:%M'),
'duration': f'{duration:.1f}s',
'scheme': log.get('schemeIdentifier-schemeName', '?'),
'status': obs.get('highLevelStatus', '?'),
'errors': obs.get('totalNumberOfErrors', 0),
'warnings': obs.get('totalNumberOfWarnings', 0),
'analyzer': obs.get('totalNumberOfAnalyzerIssues', 0),
'file': log.get('fileName', ''),
})
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-alexissan-xcode-build-analyzer": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
apple-books
Read your Apple Books library, highlights, notes, and reading progress directly from the local SQLite databases on macOS.
marine-forecast
Marine and sailing weather via Open-Meteo. Waves, swell, sea temperature, wind, tides, ocean currents, and sailing assessments. Free, no API key, global coverage.
fastlane
iOS/macOS app automation — builds, signing, TestFlight, App Store via CLI
swiftlint
Swift linting and style enforcement via CLI