accessibility-testing
WCAG compliance testing and accessibility quality assurance workflows for iOS apps. Use when validating accessibility labels,…
Crash log analysis, symbolication, and debugging workflows for iOS apps. Use when investigating app crashes, analyzing crash reports, symbolicating stack traces, or identifying root causes. Covers crash log retrieval, symbolication with dSYM files, stack trace analysis, and
Claude Code
$ npx -y skills add conorluddy/xclaude-plugin --skill crash-debugging --agent claude-code
Codex
$ npx skills add conorluddy/xclaude-plugin --skill crash-debugging -a codex -y
Cursor
$ npx skills add conorluddy/xclaude-plugin --skill crash-debugging -a cursor -y
Gemini CLI
$ npx skills add conorluddy/xclaude-plugin --skill crash-debugging -a gemini-cli -y
GitHub Copilot
$ npx skills add conorluddy/xclaude-plugin --skill crash-debugging -a github-copilot -y
OpenCode
$ npx skills add conorluddy/xclaude-plugin --skill crash-debugging -a opencode -y
Windsurf
$ npx skills add conorluddy/xclaude-plugin --skill crash-debugging -a windsurf -y
name: crash-debugging description: Crash log analysis, symbolication, and debugging workflows for iOS apps. Use when investigating app crashes, analyzing crash reports, symbolicating stack traces, or identifying root causes. Covers crash log retrieval, symbolication with dSYM files, stack trace analysis, and common crash patterns. version: 0.0.1 token_cost: ~40
**Comprehensive guide to iOS crash analysis and debugging**
| Task | Tool/Command | Location | |------|--------------|----------| | View crash logs | Console.app | macOS Application | | Retrieve simulator crashes | ~/Library/Logs/DiagnosticReports/ | File system | | Symbolicate crash | atos | Command line | | Find dSYM files | Xcode Organizer / DerivedData | Xcode | | Analyze crash type | Stack trace patterns | Crash log |
Crash debugging transforms cryptic crash logs into actionable insights. This skill covers:
**Use this skill when:**
**Don't use for:**
**Crash Logs:**
**Diagnostic Reports:**
**Unsymbolicated:**
0 MyApp 0x0000000102a3c4f8 0x102a38000 + 17656 1 MyApp 0x0000000102a3d1a4 0x102a38000 + 20900
**Symbolicated:**
0 MyApp 0x0000000102a3c4f8 ViewController.loginButtonTapped() + 120 1 MyApp 0x0000000102a3d1a4 ViewController.viewDidLoad() + 84
**Symbolication Requirements:** 1. **dSYM file** matching the build UUID 2. **Binary** (MyApp.app/MyApp) 3. **Crash log** with memory addresses
**Stack Trace:**
**Debugging Symbols (dSYM):**
| Exception Type | Meaning | Common Cause | |----------------|---------|--------------| | EXC_BAD_ACCESS | Invalid memory access | Dangling pointer, use-after-free | | SIGABRT | Process aborted | Assertion failure, force unwrap nil | | EXC_BREAKPOINT | Breakpoint hit | Swift runtime error, fatal error | | SIGILL | Illegal instruction | Corrupted code, wrong architecture | | SIGSEGV | Segmentation fault | Memory corruption | | SIGBUS | Bus error | Unaligned memory access |
**Step 1: Locate Crash Logs**
open ~/Library/Logs/DiagnosticReports/
**Directory Structure:**
DiagnosticReports/ ├── MyApp_2025-11-06-143022_Conors-MacBook.crash ├── MyApp_2025-11-06-140511_Conors-MacBook.crash └── ...
**Step 2: Identify Recent Crash**
Sort by date modified, or filter by app name:
ls -lt ~/Library/Logs/DiagnosticReports/ | grep MyApp | head -5
**Step 3: Read Crash Log**
cat ~/Library/Logs/DiagnosticReports/MyApp_2025-11-06-143022_Conors-MacBook.crash
**Step 1: Open Console.app**
open -a Console
**Step 2: Filter Logs**
**Advantages:**
**Step 1: Connect Device**
**Step 2: Open Devices and Simulators**
**Step 3: View Device Logs**
**Step 1: Locate dSYM**
Xcode automatically symbolicates if: 1. dSYM is in Spotlight index 2. dSYM UUID matches crash log
**Check dSYM UUID:**
dwarfdump --uuid /path/to/MyApp.app.dSYM
**Check Crash Log UUID:**
Binary Images: 0x102a38000 - 0x102a4bfff MyApp arm64 <12345678-1234-1234-1234-123456789abc>
UUIDs must match for symbolication.
**Step 2: Import to Xcode**
If auto-symbolication fails: 1. Xcode → Window → Organizer 2. Select "Crashes" tab 3. Drag crash log into window 4. Xcode symbolicates automatically (if dSYM available)
**Step 1: Find Required Files**
# App binary APP_BINARY="/path/to/MyApp.app/MyApp" # dSYM file DSYM_FILE="/path/to/MyApp.app.dSYM/Contents/Resources/DWARF/MyApp" # Load address (from crash log "Binary Images" section) LOAD_ADDRESS="0x102a38000"
**Step 2: Symbolicate Address**
atos -arch arm64 -o "$DSYM_FILE" -l "$LOAD_ADDRESS" 0x0000000102a3c4f8
**Output:**
ViewController.loginButtonTapped() (in MyApp) (ViewController.swift:45)
**Step 3: Symbolicate Multiple Addresses**
atos -arch arm64 -o "$DSYM_FILE" -l "$LOAD_ADDRESS" \ 0x0000000102a3c4f8 \ 0x0000000102a3d1a4 \ 0x0000000102a3e220
**Symbolicate Entire Crash Log:**
export DEVELOPER_DIR="/App
Modular iOS development automation for Claude Code Build, test, and automate iOS apps through natural conversation with Claude. 8 workflow-specific MCP servers with 24 tools across Xcode, Simulator, and IDB. Enable only what you need.
WCAG compliance testing and accessibility quality assurance workflows for iOS apps. Use when validating accessibility labels,…
XCTest and XCUITest execution workflows and flaky test detection patterns
Instruments integration and performance analysis workflows for iOS apps. Use when profiling CPU usage, memory allocation, network…
iOS Simulator device and app management with simctl. Use when managing simulator devices (boot, create, delete),…
Cache management, configuration best practices, and progressive disclosure patterns for efficient context window usage. Use when…
Accessibility-first UI automation using IDB. Query accessibility tree (fast, 50 tokens) before screenshots (slow, 170 tokens).…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.