.claude-plugin/plugins/axiom/skills/axiom-ios-build/SKILL.md
Use when ANY iOS build fails, test crashes, Xcode misbehaves, or environment issue occurs before debugging code. Covers build failures, compilation errors, dependency conflicts, simulator problems, environment-first diagnostics.
npx skillsauth add charleswiltgen/axiom axiom-ios-buildInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You MUST use this skill for ANY build, environment, or Xcode-related issue before debugging application code.
Use this router when you encounter:
BUILD FAILED, compilation errors, linker errors)This router invokes specialized skills based on the specific issue:
Triggers:
BUILD FAILED without obvious code causexcodebuild processesWhy xcode-debugging first: 90% of mysterious issues are environment, not code. Check this BEFORE debugging code.
Invoke: /skill axiom-xcode-debugging
Triggers:
Invoke: /skill axiom-build-performance
Triggers:
Why spm-conflict-resolver: Specialized agent that analyzes Package.swift and Package.resolved to diagnose and resolve Swift Package Manager conflicts.
Invoke: Launch spm-conflict-resolver agent
Triggers:
Why security-privacy-scanner: Specialized agent that scans for security vulnerabilities and privacy compliance issues.
Invoke: Launch security-privacy-scanner agent or /axiom:audit security
Triggers:
Why modernization-helper: Specialized agent that scans for legacy patterns and provides migration paths with code examples.
Invoke: Launch modernization-helper agent or /axiom:audit modernization
Triggers:
Why build-fixer: Autonomous agent that checks zombie processes, Derived Data, SPM cache, and simulator state before investigating code. Saves 30+ minutes on environment issues.
Invoke: Launch build-fixer agent or /axiom:fix-build
Triggers:
Why build-optimizer: Scans Xcode projects for build performance optimizations — slow type checking, expensive scripts, suboptimal settings — to reduce build times by 30-50%.
Invoke: Launch build-optimizer agent or /axiom:optimize-build
Triggers:
Invoke: /skill axiom-build-debugging
Triggers:
Why testflight-triage: Systematic workflow for investigating TestFlight crashes and reviewing beta feedback. Covers symbolication, crash interpretation, common patterns, and Claude-assisted analysis.
Invoke: /skill axiom-testflight-triage
Triggers:
Why app-store-connect-ref: Reference for navigating ASC crash analysis, metrics dashboards, and data export workflows.
Invoke: /skill axiom-app-store-connect-ref
Triggers:
Why crash-analyzer: Autonomous agent that parses crash reports, identifies patterns (null pointer, Swift runtime, watchdog, jetsam), and generates actionable analysis.
Invoke: Launch crash-analyzer agent or /axiom:analyze-crash
Triggers:
Why metrickit-ref: Complete MetricKit API reference with setup patterns, payload parsing, and integration with crash reporting systems.
Invoke: /skill axiom-metrickit-ref
Triggers:
Why hang-diagnostics: Systematic diagnosis of hangs with decision tree for busy vs blocked main thread, tool selection (Time Profiler, System Trace), and 8 common hang patterns with fixes.
Invoke: /skill axiom-hang-diagnostics
Triggers:
Why axiom-lldb: Crash reports tell you WHAT crashed. LLDB tells you WHY.
Invoke: /skill axiom-lldb
Triggers:
Why xclog-ref: Xcode's debug console isn't accessible externally. xclog combines simctl stdout/stderr with log stream JSON to capture everything print(), NSLog(), os_log(), and Logger emit — with structured fields (level, subsystem, category) for automated analysis.
Invoke: /skill axiom-xclog-ref or /axiom:console
Triggers:
Why code-signing: Code signing errors are NEVER code bugs — they are 100% configuration (certificates, profiles, entitlements, keychains). Diagnosing with CLI tools takes 5 minutes vs hours of guessing.
Invoke: /skill axiom-code-signing (workflows) or /skill axiom-code-signing-diag (troubleshooting)
/axiom:console| Thought | Reality |
|---------|---------|
| "I know how to fix this linker error" | Linker errors have 4+ root causes. xcode-debugging diagnoses all in 2 min. |
| "Let me just clean the build folder" | Clean builds mask the real issue. xcode-debugging finds the root cause. |
| "It's just an SPM issue, I'll fix Package.swift" | SPM conflicts cascade. spm-conflict-resolver analyzes the full dependency graph. |
| "The simulator is just slow today" | Simulator issues indicate environment corruption. xcode-debugging checks systematically. |
| "I'll skip environment checks, it compiles locally" | Environment-first saves 30+ min. Every time. |
| "I'll read the crash report more carefully instead of reproducing" | Crash reports show WHAT crashed, not WHY. Reproducing in LLDB with breakpoints reveals the actual state. axiom-lldb has the workflow. |
| "I know my certificate is fine, let me check the code" | Code signing errors are NEVER code bugs. 100% configuration. code-signing diagnoses with CLI in 5 min. |
| "I can't see what the app is logging without Xcode" | xclog captures print() + os_log from the simulator. Structured JSON output with level, subsystem, category. /axiom:console or /skill axiom-xclog-ref. |
Do NOT use ios-build for these — use the correct router instead:
| Error Type | Correct Router | Why NOT ios-build | |------------|----------------|-------------------| | Swift 6 concurrency errors | ios-concurrency | Code error, not environment | | SwiftData migration errors | ios-data | Schema issue, not build environment | | "Sending 'self' risks data race" | ios-concurrency | Language error, not Xcode issue | | Type mismatch / compilation errors | Fix the code | These are code bugs |
ios-build is for environment mysteries, not code errors:
User: "My build failed with a linker error"
→ Invoke: /skill axiom-xcode-debugging (environment-first diagnostic)
User: "Builds are taking 10 minutes"
→ Invoke: /skill axiom-build-performance
User: "SPM won't resolve dependencies"
→ Invoke: spm-conflict-resolver agent
User: "Two packages require different versions of the same dependency"
→ Invoke: spm-conflict-resolver agent
User: "Duplicate symbol linker error"
→ Invoke: spm-conflict-resolver agent
User: "I need to prepare for App Store security review"
→ Invoke: security-privacy-scanner agent
User: "Do I need a Privacy Manifest?"
→ Invoke: security-privacy-scanner agent
User: "Are there hardcoded credentials in my code?"
→ Invoke: security-privacy-scanner agent
User: "How do I migrate from ObservableObject to @Observable?"
→ Invoke: modernization-helper agent
User: "Update my code to use modern SwiftUI patterns"
→ Invoke: modernization-helper agent
User: "Should I still use @StateObject?"
→ Invoke: modernization-helper agent
User: "A beta tester said my app crashed"
→ Invoke: /skill axiom-testflight-triage
User: "I see crashes in App Store Connect but don't know how to investigate"
→ Invoke: /skill axiom-testflight-triage
User: "My crash logs aren't symbolicated"
→ Invoke: /skill axiom-testflight-triage
User: "I need to review TestFlight feedback"
→ Invoke: /skill axiom-testflight-triage
User: "How do I find crashes in App Store Connect?"
→ Invoke: /skill axiom-app-store-connect-ref
User: "Where's the crash-free users metric in ASC?"
→ Invoke: /skill axiom-app-store-connect-ref
User: "How do I export crash data from App Store Connect?"
→ Invoke: /skill axiom-app-store-connect-ref
User: "Analyze this crash log" [pastes .ips content]
→ Invoke: crash-analyzer agent or /axiom:analyze-crash
User: "Parse this .ips file: ~/Library/Logs/DiagnosticReports/MyApp.ips"
→ Invoke: crash-analyzer agent or /axiom:analyze-crash
User: "Why did my app crash? Here's the report..."
→ Invoke: crash-analyzer agent or /axiom:analyze-crash
User: "How do I set up MetricKit to collect crash data?"
→ Invoke: /skill axiom-metrickit-ref
User: "How do I parse MXDiagnosticPayload?"
→ Invoke: /skill axiom-metrickit-ref
User: "What's in MXCallStackTree and how do I decode it?"
→ Invoke: /skill axiom-metrickit-ref
User: "My app hangs sometimes"
→ Invoke: /skill axiom-hang-diagnostics
User: "The main thread is blocked and UI is unresponsive"
→ Invoke: /skill axiom-hang-diagnostics
User: "Xcode Organizer shows hang diagnostics for my app"
→ Invoke: /skill axiom-hang-diagnostics
User: "My app was killed by watchdog during launch"
→ Invoke: /skill axiom-hang-diagnostics
User: "I have a crash report and need to reproduce it in the debugger"
→ Invoke: /skill axiom-lldb
User: "How do I set breakpoints to catch this crash?"
→ Invoke: /skill axiom-lldb
User: "My build is failing with BUILD FAILED but no error details"
→ Invoke: build-fixer agent or /axiom:fix-build
User: "Build sometimes succeeds, sometimes fails"
→ Invoke: build-fixer agent or /axiom:fix-build
User: "How can I speed up my Xcode build times?"
→ Invoke: build-optimizer agent or /axiom:optimize-build
User: "No signing certificate found when I try to build"
→ Invoke: /skill axiom-code-signing-diag
User: "errSecInternalComponent in my GitHub Actions CI"
→ Invoke: /skill axiom-code-signing-diag
User: "How do I set up code signing for GitHub Actions?"
→ Invoke: /skill axiom-code-signing
User: "What is my app printing to the console?"
→ Invoke: /skill axiom-xclog-ref or /axiom:console
User: "I need to see the simulator console output"
→ Invoke: /skill axiom-xclog-ref or /axiom:console
User: "The app fails silently, no error in the UI"
→ Invoke: /skill axiom-xclog-ref or /axiom:console
development
Use when building ANY watchOS app — app structure, independent apps, Watch Connectivity, Smart Stack widgets, complications, controls, RelevanceKit, background tasks, ClockKit migration.
development
Use when working with HealthKit, WorkoutKit, health data, workouts, or fitness features on iOS or watchOS. Covers permissions, queries, background delivery, custom workouts, multidevice coordination.
development
Use when building, fixing, or improving ANY SwiftUI UI — views, navigation, layout, animations, performance, architecture, gestures, debugging, iOS 26 features.
content-media
Use when working with camera, photos, audio, haptics, ShazamKit, or Now Playing. Covers AVCaptureSession, PHPicker, PhotosPicker, AVFoundation, Core Haptics, audio recognition, MediaPlayer, CarPlay, MusicKit.