[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6E6CKPX3FJ5XMCMBGCMXS5D":3,"skill-same:01M6E6CKPX3FJ5XMCMBGCMXS5D":90},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M6E6CKPX3FJ5XMCMBGCMXS5D","axiom-ios-build",null,"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.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FCharlesWiltgen\u002FAxiom\u002Faxiom-ios-build\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37],"ios","build","axiom ios build","test","diagnostics","debugging","code","first","environment","use","dependency","issue","conflicts","xcode","2026-11-10 10:12:30",false,"---\nname: axiom-ios-build\ndescription: 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.\nlicense: MIT\n---\n\n# iOS Build & Environment Router\n\n**You MUST use this skill for ANY build, environment, or Xcode-related issue before debugging application code.**\n\n## When to Use\n\nUse this router when you encounter:\n- Build failures (`BUILD FAILED`, compilation errors, linker errors)\n- Test crashes or hangs\n- Simulator issues (won't boot, device errors)\n- Xcode misbehavior (stale builds, zombie processes)\n- Dependency conflicts (CocoaPods, SPM)\n- Build performance issues (slow compilation)\n- Environment issues before debugging code\n\n## Routing Logic\n\nThis router invokes specialized skills based on the specific issue:\n\n### 1. Environment-First Issues → **xcode-debugging**\n**Triggers**:\n- `BUILD FAILED` without obvious code cause\n- Tests crash in clean project\n- Simulator hangs or won't boot\n- \"No such module\" after SPM changes\n- Zombie `xcodebuild` processes\n- Stale builds (old code still running)\n- Clean build differs from incremental build\n\n**Why xcode-debugging first**: 90% of mysterious issues are environment, not code. Check this BEFORE debugging code.\n\n**Invoke**: `\u002Fskill axiom-xcode-debugging`\n\n---\n\n### 2. Slow Builds → **build-performance**\n**Triggers**:\n- Compilation takes too long\n- Type checking bottlenecks\n- Want to optimize build time\n- Build Timeline shows slow phases\n\n**Invoke**: `\u002Fskill axiom-build-performance`\n\n---\n\n### 3. SPM Dependency Conflicts → **spm-conflict-resolver** (Agent)\n**Triggers**:\n- SPM resolution failures\n- \"No such module\" after adding package\n- Duplicate symbol linker errors\n- Version conflicts between packages\n- Swift 6 package compatibility issues\n- Package.swift \u002F Package.resolved conflicts\n\n**Why spm-conflict-resolver**: Specialized agent that analyzes Package.swift and Package.resolved to diagnose and resolve Swift Package Manager conflicts.\n\n**Invoke**: Launch `spm-conflict-resolver` agent\n\n---\n\n### 4. Security & Privacy Audit → **security-privacy-scanner** (Agent)\n**Triggers**:\n- App Store submission prep\n- Privacy Manifest requirements (iOS 17+)\n- Hardcoded credentials in code\n- Sensitive data storage concerns\n- ATS violations\n- Required Reason API declarations\n\n**Why security-privacy-scanner**: Specialized agent that scans for security vulnerabilities and privacy compliance issues.\n\n**Invoke**: Launch `security-privacy-scanner` agent or `\u002Faxiom:audit security`\n\n---\n\n### 5. iOS 17→18 Modernization → **modernization-helper** (Agent)\n**Triggers**:\n- Migrate ObservableObject to @Observable\n- Update @StateObject to @State\n- Adopt modern SwiftUI patterns\n- Deprecated API cleanup\n- iOS 17+ migration\n\n**Why modernization-helper**: Specialized agent that scans for legacy patterns and provides migration paths with code examples.\n\n**Invoke**: Launch `modernization-helper` agent or `\u002Faxiom:audit modernization`\n\n---\n\n### 6. Build Failure Auto-Fix → **build-fixer** (Agent)\n**Triggers**:\n- BUILD FAILED with no clear error details\n- Build sometimes succeeds, sometimes fails\n- App builds but runs old code\n- \"Unable to boot simulator\" error\n- Want automated environment-first diagnostics\n\n**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.\n\n**Invoke**: Launch `build-fixer` agent or `\u002Faxiom:fix-build`\n\n---\n\n### 7. Slow Build Optimization → **build-optimizer** (Agent)\n**Triggers**:\n- Builds take too long\n- Want to identify slow type checking\n- Expensive build phase scripts\n- Suboptimal build settings\n- Want parallelization opportunities\n\n**Why build-optimizer**: Scans Xcode projects for build performance optimizations — slow type checking, expensive scripts, suboptimal settings — to reduce build times by 30-50%.\n\n**Invoke**: Launch `build-optimizer` agent or `\u002Faxiom:optimize-build`\n\n---\n\n### 8. General Dependency Issues → **build-debugging**\n**Triggers**:\n- CocoaPods resolution failures\n- \"Multiple commands produce\" errors\n- Framework version mismatches\n- Non-SPM dependency graph conflicts\n\n**Invoke**: `\u002Fskill axiom-build-debugging`\n\n---\n\n### 9. TestFlight Crash Triage → **testflight-triage**\n**Triggers**:\n- Beta tester reported a crash\n- Crash reports in Xcode Organizer\n- Crash logs aren't symbolicated\n- TestFlight feedback with screenshots\n- App was killed but no crash report\n\n**Why testflight-triage**: Systematic workflow for investigating TestFlight crashes and reviewing beta feedback. Covers symbolication, crash interpretation, common patterns, and Claude-assisted analysis.\n\n**Invoke**: `\u002Fskill axiom-testflight-triage`\n\n---\n\n### 10. App Store Connect Navigation → **app-store-connect-ref**\n**Triggers**:\n- How to find crashes in App Store Connect\n- ASC metrics dashboard navigation\n- Understanding crash-free users percentage\n- Comparing crash rates between versions\n- Exporting crash data from ASC\n- App Store Connect API for crash data\n\n**Why app-store-connect-ref**: Reference for navigating ASC crash analysis, metrics dashboards, and data export workflows.\n\n**Invoke**: `\u002Fskill axiom-app-store-connect-ref`\n\n---\n\n### 11. Crash Log Analysis → **crash-analyzer** (Agent)\n**Triggers**:\n- User has .ips or .crash file to analyze\n- User pasted crash report text\n- Need to parse crash log programmatically\n- Identify crash pattern from exception type\n- Check symbolication status\n\n**Why crash-analyzer**: Autonomous agent that parses crash reports, identifies patterns (null pointer, Swift runtime, watchdog, jetsam), and generates actionable analysis.\n\n**Invoke**: Launch `crash-analyzer` agent or `\u002Faxiom:analyze-crash`\n\n---\n\n### 12. MetricKit API Reference → **metrickit-ref**\n**Triggers**:\n- MetricKit setup and subscription\n- MXMetricPayload parsing (CPU, memory, launches, hitches)\n- MXDiagnosticPayload parsing (crashes, hangs, disk writes)\n- MXCallStackTree decoding and symbolication\n- Field crash\u002Fhang collection\n- Background exit metrics\n\n**Why metrickit-ref**: Complete MetricKit API reference with setup patterns, payload parsing, and integration with crash reporting systems.\n\n**Invoke**: `\u002Fskill axiom-metrickit-ref`\n\n---\n\n### 13. Hang Diagnostics → **hang-diagnostics**\n**Triggers**:\n- App hangs or freezes\n- Main thread blocked for >1 second\n- UI unresponsive to touches\n- Xcode Organizer shows hang diagnostics\n- MXHangDiagnostic from MetricKit\n- Watchdog terminations (app killed during launch\u002Fbackground transition)\n\n**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.\n\n**Invoke**: `\u002Fskill axiom-hang-diagnostics`\n\n---\n\n### 14. Live Debugging → **axiom-lldb**\n**Triggers**:\n- Need to reproduce a crash interactively\n- Want to set breakpoints and inspect state\n- Crash report analyzed, now need live investigation\n- Need to attach debugger to running app\n\n**Why axiom-lldb**: Crash reports tell you WHAT crashed. LLDB tells you WHY.\n\n**Invoke**: `\u002Fskill axiom-lldb`\n\n---\n\n### 16. Runtime Console Capture → **xclog-ref**\n**Triggers**:\n- Need to see what the app is logging at runtime\n- App crashes but no crash report (need console output)\n- Silent failures (network, data, auth) with no UI feedback\n- Want to capture print()\u002Fos_log() output from simulator\n- Need structured log output for analysis\n- \"What is the app printing?\"\n\n**Why xclog-ref**: Xcode's debug console isn't accessible externally. xclog combines simctl stdout\u002Fstderr with `log stream` JSON to capture everything print(), NSLog(), os_log(), and Logger emit — with structured fields (level, subsystem, category) for automated analysis.\n\n**Invoke**: `\u002Fskill axiom-xclog-ref` or `\u002Faxiom:console`\n\n---\n\n### 15. Code Signing Issues → **code-signing**\n**Triggers**:\n- \"No signing certificate found\"\n- \"Provisioning profile doesn't include signing certificate\"\n- errSecInternalComponent in CI\n- ITMS-90035 Invalid Signature on upload\n- Ambiguous identity \u002F multiple certificates\n- Entitlement mismatch or missing capability\n- Setting up CI\u002FCD code signing (GitHub Actions, fastlane match)\n- Certificate expired or revoked\n\n**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.\n\n**Invoke**: `\u002Fskill axiom-code-signing` (workflows) or `\u002Fskill axiom-code-signing-diag` (troubleshooting)\n\n---\n\n## Decision Tree\n\n1. Mysterious\u002Fintermittent\u002Fclean build fails? → xcode-debugging (environment-first)\n2. SPM dependency conflict? → spm-conflict-resolver (Agent)\n3. CocoaPods\u002Fother dependency conflict? → build-debugging\n4. Slow build time? → build-performance\n5. Security\u002Fprivacy\u002FApp Store prep? → security-privacy-scanner (Agent)\n6. Want automated build fix (environment-first diagnostics)? → build-fixer (Agent)\n7. Want build time optimization scan? → build-optimizer (Agent)\n8. Modernization\u002Fdeprecated APIs? → modernization-helper (Agent)\n9. TestFlight crash\u002Ffeedback? → testflight-triage\n10. Navigating App Store Connect? → app-store-connect-ref\n11. Have a crash log (.ips\u002F.crash)? → crash-analyzer (Agent)\n12. MetricKit setup\u002Fparsing? → metrickit-ref\n13. App hang\u002Ffreeze\u002Fwatchdog? → hang-diagnostics\n14. Need to reproduce crash interactively \u002F inspect runtime state? → axiom-lldb\n15. Code signing error (certificate, profile, entitlement, Keychain)? → code-signing \u002F code-signing-diag\n16. Need to see runtime console output (print\u002Fos_log)? → xclog-ref or `\u002Faxiom:console`\n\n## Anti-Rationalization\n\n| Thought | Reality |\n|---------|---------|\n| \"I know how to fix this linker error\" | Linker errors have 4+ root causes. xcode-debugging diagnoses all in 2 min. |\n| \"Let me just clean the build folder\" | Clean builds mask the real issue. xcode-debugging finds the root cause. |\n| \"It's just an SPM issue, I'll fix Package.swift\" | SPM conflicts cascade. spm-conflict-resolver analyzes the full dependency graph. |\n| \"The simulator is just slow today\" | Simulator issues indicate environment corruption. xcode-debugging checks systematically. |\n| \"I'll skip environment checks, it compiles locally\" | Environment-first saves 30+ min. Every time. |\n| \"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. |\n| \"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. |\n| \"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. `\u002Faxiom:console` or `\u002Fskill axiom-xclog-ref`. |\n\n## When NOT to Use (Conflict Resolution)\n\n**Do NOT use ios-build for these — use the correct router instead:**\n\n| Error Type | Correct Router | Why NOT ios-build |\n|------------|----------------|-------------------|\n| Swift 6 concurrency errors | **ios-concurrency** | Code error, not environment |\n| SwiftData migration errors | **ios-data** | Schema issue, not build environment |\n| \"Sending 'self' risks data race\" | **ios-concurrency** | Language error, not Xcode issue |\n| Type mismatch \u002F compilation errors | Fix the code | These are code bugs |\n\n**ios-build is for environment mysteries**, not code errors:\n- ✅ \"No such module\" when code is correct\n- ✅ Simulator won't boot\n- ✅ Clean build fails, incremental works\n- ✅ Zombie xcodebuild processes\n- ❌ Swift concurrency warnings\u002Ferrors\n- ❌ Database migration failures\n- ❌ Type checking errors in valid code\n\n## Example Invocations\n\nUser: \"My build failed with a linker error\"\n→ Invoke: `\u002Fskill axiom-xcode-debugging` (environment-first diagnostic)\n\nUser: \"Builds are taking 10 minutes\"\n→ Invoke: `\u002Fskill axiom-build-performance`\n\nUser: \"SPM won't resolve dependencies\"\n→ Invoke: `spm-conflict-resolver` agent\n\nUser: \"Two packages require different versions of the same dependency\"\n→ Invoke: `spm-conflict-resolver` agent\n\nUser: \"Duplicate symbol linker error\"\n→ Invoke: `spm-conflict-resolver` agent\n\nUser: \"I need to prepare for App Store security review\"\n→ Invoke: `security-privacy-scanner` agent\n\nUser: \"Do I need a Privacy Manifest?\"\n→ Invoke: `security-privacy-scanner` agent\n\nUser: \"Are there hardcoded credentials in my code?\"\n→ Invoke: `security-privacy-scanner` agent\n\nUser: \"How do I migrate from ObservableObject to @Observable?\"\n→ Invoke: `modernization-helper` agent\n\nUser: \"Update my code to use modern SwiftUI patterns\"\n→ Invoke: `modernization-helper` agent\n\nUser: \"Should I still use @StateObject?\"\n→ Invoke: `modernization-helper` agent\n\nUser: \"A beta tester said my app crashed\"\n→ Invoke: `\u002Fskill axiom-testflight-triage`\n\nUser: \"I see crashes in App Store Connect but don't know how to investigate\"\n→ Invoke: `\u002Fskill axiom-testflight-triage`\n\nUser: \"My crash logs aren't symbolicated\"\n→ Invoke: `\u002Fskill axiom-testflight-triage`\n\nUser: \"I need to review TestFlight feedback\"\n→ Invoke: `\u002Fskill axiom-testflight-triage`\n\nUser: \"How do I find crashes in App Store Connect?\"\n→ Invoke: `\u002Fskill axiom-app-store-connect-ref`\n\nUser: \"Where's the crash-free users metric in ASC?\"\n→ Invoke: `\u002Fskill axiom-app-store-connect-ref`\n\nUser: \"How do I export crash data from App Store Connect?\"\n→ Invoke: `\u002Fskill axiom-app-store-connect-ref`\n\nUser: \"Analyze this crash log\" [pastes .ips content]\n→ Invoke: `crash-analyzer` agent or `\u002Faxiom:analyze-crash`\n\nUser: \"Parse this .ips file: ~\u002FLibrary\u002FLogs\u002FDiagnosticReports\u002FMyApp.ips\"\n→ Invoke: `crash-analyzer` agent or `\u002Faxiom:analyze-crash`\n\nUser: \"Why did my app crash? Here's the report...\"\n→ Invoke: `crash-analyzer` agent or `\u002Faxiom:analyze-crash`\n\nUser: \"How do I set up MetricKit to collect crash data?\"\n→ Invoke: `\u002Fskill axiom-metrickit-ref`\n\nUser: \"How do I parse MXDiagnosticPayload?\"\n→ Invoke: `\u002Fskill axiom-metrickit-ref`\n\nUser: \"What's in MXCallStackTree and how do I decode it?\"\n→ Invoke: `\u002Fskill axiom-metrickit-ref`\n\nUser: \"My app hangs sometimes\"\n→ Invoke: `\u002Fskill axiom-hang-diagnostics`\n\nUser: \"The main thread is blocked and UI is unresponsive\"\n→ Invoke: `\u002Fskill axiom-hang-diagnostics`\n\nUser: \"Xcode Organizer shows hang diagnostics for my app\"\n→ Invoke: `\u002Fskill axiom-hang-diagnostics`\n\nUser: \"My app was killed by watchdog during launch\"\n→ Invoke: `\u002Fskill axiom-hang-diagnostics`\n\nUser: \"I have a crash report and need to reproduce it in the debugger\"\n→ Invoke: `\u002Fskill axiom-lldb`\n\nUser: \"How do I set breakpoints to catch this crash?\"\n→ Invoke: `\u002Fskill axiom-lldb`\n\nUser: \"My build is failing with BUILD FAILED but no error details\"\n→ Invoke: `build-fixer` agent or `\u002Faxiom:fix-build`\n\nUser: \"Build sometimes succeeds, sometimes fails\"\n→ Invoke: `build-fixer` agent or `\u002Faxiom:fix-build`\n\nUser: \"How can I speed up my Xcode build times?\"\n→ Invoke: `build-optimizer` agent or `\u002Faxiom:optimize-build`\n\nUser: \"No signing certificate found when I try to build\"\n→ Invoke: `\u002Fskill axiom-code-signing-diag`\n\nUser: \"errSecInternalComponent in my GitHub Actions CI\"\n→ Invoke: `\u002Fskill axiom-code-signing-diag`\n\nUser: \"How do I set up code signing for GitHub Actions?\"\n→ Invoke: `\u002Fskill axiom-code-signing`\n\nUser: \"What is my app printing to the console?\"\n→ Invoke: `\u002Fskill axiom-xclog-ref` or `\u002Faxiom:console`\n\nUser: \"I need to see the simulator console output\"\n→ Invoke: `\u002Fskill axiom-xclog-ref` or `\u002Faxiom:console`\n\nUser: \"The app fails silently, no error in the UI\"\n→ Invoke: `\u002Fskill axiom-xclog-ref` or `\u002Faxiom:console`\n\n","# iOS Build & Environment Router\n\n**You MUST use this skill for ANY build, environment, or Xcode-related issue before debugging application code.**\n\n## When to Use\n\nUse this router when you encounter:\n- Build failures (`BUILD FAILED`, compilation errors, linker errors)\n- Test crashes or hangs\n- Simulator issues (won't boot, device errors)\n- Xcode misbehavior (stale builds, zombie processes)\n- Dependency conflicts (CocoaPods, SPM)\n- Build performance issues (slow compilation)\n- Environment issues before debugging code\n\n## Routing Logic\n\nThis router invokes specialized skills based on the specific issue:\n\n### 1. Environment-First Issues → **xcode-debugging**\n**Triggers**:\n- `BUILD FAILED` without obvious code cause\n- Tests crash in clean project\n- Simulator hangs or won't boot\n- \"No such module\" after SPM changes\n- Zombie `xcodebuild` processes\n- Stale builds (old code still running)\n- Clean build differs from incremental build\n\n**Why xcode-debugging first**: 90% of mysterious issues are environment, not code. Check this BEFORE debugging code.\n\n**Invoke**: `\u002Fskill axiom-xcode-debugging`\n\n---\n\n### 2. Slow Builds → **build-performance**\n**Triggers**:\n- Compilation takes too long\n- Type checking bottlenecks\n- Want to optimize build time\n- Build Timeline shows slow phases\n\n**Invoke**: `\u002Fskill axiom-build-performance`\n\n---\n\n### 3. SPM Dependency Conflicts → **spm-conflict-resolver** (Agent)\n**Triggers**:\n- SPM resolution failures\n- \"No such module\" after adding package\n- Duplicate symbol linker errors\n- Version conflicts between packages\n- Swift 6 package compatibility issues\n- Package.swift \u002F Package.resolved conflicts\n\n**Why spm-conflict-resolver**: Specialized agent that analyzes Package.swift and Package.resolved to diagnose and resolve Swift Package Manager conflicts.\n\n**Invoke**: Launch `spm-conflict-resolver` agent\n\n---\n\n### 4. Security & Privacy Audit → **security-privacy-scanner** (Agent)\n**Triggers**:\n- App Store submission prep\n- Privacy Manifest requirements (iOS 17+)\n- Hardcoded credentials in code\n- Sensitive data storage concerns\n- ATS violations\n- Required Reason API declarations\n\n**Why security-privacy-scanner**: Specialized agent that scans for security vulnerabilities and privacy compliance issues.\n\n**Invoke**: Launch `security-privacy-scanner` agent or `\u002Faxiom:audit security`\n\n---\n\n### 5. iOS 17→18 Modernization → **modernization-helper** (Agent)\n**Triggers**:\n- Migrate ObservableObject to @Observable\n- Update @StateObject to @State\n- Adopt modern SwiftUI patterns\n- Deprecated API cleanup\n- iOS 17+ migration\n\n**Why modernization-helper**: Specialized agent that scans for legacy patterns and provides migration paths with code examples.\n\n**Invoke**: Launch `modernization-helper` agent or `\u002Faxiom:audit modernization`\n\n---\n\n### 6. Build Failure Auto-Fix → **build-fixer** (Agent)\n**Triggers**:\n- BUILD FAILED with no clear error details\n- Build sometimes succeeds, sometimes fails\n- App builds but runs old code\n- \"Unable to boot simulator\" error\n- Want automated environment-first diagnostics\n\n**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.\n\n**Invoke**: Launch `build-fixer` agent or `\u002Faxiom:fix-build`\n\n---\n\n### 7. Slow Build Optimization → **build-optimizer** (Agent)\n**Triggers**:\n- Builds take too long\n- Want to identify slow type checking\n- Expensive build phase scripts\n- Suboptimal build settings\n- Want parallelization opportunities\n\n**Why build-optimizer**: Scans Xcode projects for build performance optimizations — slow type checking, expensive scripts, suboptimal settings — to reduce build times by 30-50%.\n\n**Invoke**: Launch `build-optimizer` agent or `\u002Faxiom:optimize-build`\n\n---\n\n### 8. General Dependency Issues → **build-debugging**\n**Triggers**:\n- CocoaPods resolution failures\n- \"Multiple commands produce\" errors\n- Framework version mismatches\n- Non-SPM dependency graph conflicts\n\n**Invoke**: `\u002Fskill axiom-build-debugging`\n\n---\n\n### 9. TestFlight Crash Triage → **testflight-triage**\n**Triggers**:\n- Beta tester reported a crash\n- Crash reports in Xcode Organizer\n- Crash logs aren't symbolicated\n- TestFlight feedback with screenshots\n- App was killed but no crash report\n\n**Why testflight-triage**: Systematic workflow for investigating TestFlight crashes and reviewing beta feedback. Covers symbolication, crash interpretation, common patterns, and Claude-assisted analysis.\n\n**Invoke**: `\u002Fskill axiom-testflight-triage`\n\n---\n\n### 10. App Store Connect Navigation → **app-store-connect-ref**\n**Triggers**:\n- How to find crashes in App Store Connect\n- ASC metrics dashboard navigation\n- Understanding crash-free users percentage\n- Comparing crash rates between versions\n- Exporting crash data from ASC\n- App Store Connect API for crash data\n\n**Why app-store-connect-ref**: Reference for navigating ASC crash analysis, metrics dashboards, and data export workflows.\n\n**Invoke**: `\u002Fskill axiom-app-store-connect-ref`\n\n---\n\n### 11. Crash Log Analysis → **crash-analyzer** (Agent)\n**Triggers**:\n- User has .ips or .crash file to analyze\n- User pasted crash report text\n- Need to parse crash log programmatically\n- Identify crash pattern from exception type\n- Check symbolication status\n\n**Why crash-analyzer**: Autonomous agent that parses crash reports, identifies patterns (null pointer, Swift runtime, watchdog, jetsam), and generates actionable analysis.\n\n**Invoke**: Launch `crash-analyzer` agent or `\u002Faxiom:analyze-crash`\n\n---\n\n### 12. MetricKit API Reference → **metrickit-ref**\n**Triggers**:\n- MetricKit setup and subscription\n- MXMetricPayload parsing (CPU, memory, launches, hitches)\n- MXDiagnosticPayload parsing (crashes, hangs, disk writes)\n- MXCallStackTree decoding and symbolication\n- Field crash\u002Fhang collection\n- Background exit metrics\n\n**Why metrickit-ref**: Complete MetricKit API reference with setup patterns, payload parsing, and integration with crash reporting systems.\n\n**Invoke**: `\u002Fskill axiom-metrickit-ref`\n\n---\n\n### 13. Hang Diagnostics → **hang-diagnostics**\n**Triggers**:\n- App hangs or freezes\n- Main thread blocked for >1 second\n- UI unresponsive to touches\n- Xcode Organizer shows hang diagnostics\n- MXHangDiagnostic from MetricKit\n- Watchdog terminations (app killed during launch\u002Fbackground transition)\n\n**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.\n\n**Invoke**: `\u002Fskill axiom-hang-diagnostics`\n\n---\n\n### 14. Live Debugging → **axiom-lldb**\n**Triggers**:\n- Need to reproduce a crash interactively\n- Want to set breakpoints and inspect state\n- Crash report analyzed, now need live investigation\n- Need to attach debugger to running app\n\n**Why axiom-lldb**: Crash reports tell you WHAT crashed. LLDB tells you WHY.\n\n**Invoke**: `\u002Fskill axiom-lldb`\n\n---\n\n### 16. Runtime Console Capture → **xclog-ref**\n**Triggers**:\n- Need to see what the app is logging at runtime\n- App crashes but no crash report (need console output)\n- Silent failures (network, data, auth) with no UI feedback\n- Want to capture print()\u002Fos_log() output from simulator\n- Need structured log output for analysis\n- \"What is the app printing?\"\n\n**Why xclog-ref**: Xcode's debug console isn't accessible externally. xclog combines simctl stdout\u002Fstderr with `log stream` JSON to capture everything print(), NSLog(), os_log(), and Logger emit — with structured fields (level, subsystem, category) for automated analysis.\n\n**Invoke**: `\u002Fskill axiom-xclog-ref` or `\u002Faxiom:console`\n\n---\n\n### 15. Code Signing Issues → **code-signing**\n**Triggers**:\n- \"No signing certificate found\"\n- \"Provisioning profile doesn't include signing certificate\"\n- errSecInternalComponent in CI\n- ITMS-90035 Invalid Signature on upload\n- Ambiguous identity \u002F multiple certificates\n- Entitlement mismatch or missing capability\n- Setting up CI\u002FCD code signing (GitHub Actions, fastlane match)\n- Certificate expired or revoked\n\n**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.\n\n**Invoke**: `\u002Fskill axiom-code-signing` (workflows) or `\u002Fskill axiom-code-signing-diag` (troubleshooting)\n\n---\n\n## Decision Tree\n\n1. Mysterious\u002Fintermittent\u002Fclean build fails? → xcode-debugging (environment-first)\n2. SPM dependency conflict? → spm-conflict-resolver (Agent)\n3. CocoaPods\u002Fother dependency conflict? → build-debugging\n4. Slow build time? → build-performance\n5. Security\u002Fprivacy\u002FApp Store prep? → security-privacy-scanner (Agent)\n6. Want automated build fix (environment-first diagnostics)? → build-fixer (Agent)\n7. Want build time optimization scan? → build-optimizer (Agent)\n8. Modernization\u002Fdeprecated APIs? → modernization-helper (Agent)\n9. TestFlight crash\u002Ffeedback? → testflight-triage\n10. Navigating App Store Connect? → app-store-connect-ref\n11. Have a crash log (.ips\u002F.crash)? → crash-analyzer (Agent)\n12. MetricKit setup\u002Fparsing? → metrickit-ref\n13. App hang\u002Ffreeze\u002Fwatchdog? → hang-diagnostics\n14. Need to reproduce crash interactively \u002F inspect runtime state? → axiom-lldb\n15. Code signing error (certificate, profile, entitlement, Keychain)? → code-signing \u002F code-signing-diag\n16. Need to see runtime console output (print\u002Fos_log)? → xclog-ref or `\u002Faxiom:console`\n\n## Anti-Rationalization\n\n| Thought | Reality |\n|---------|---------|\n| \"I know how to fix this linker error\" | Linker errors have 4+ root causes. xcode-debugging diagnoses all in 2 min. |\n| \"Let me just clean the build folder\" | Clean builds mask the real issue. xcode-debugging finds the root cause. |\n| \"It's just an SPM issue, I'll fix Package.swift\" | SPM conflicts cascade. spm-conflict-resolver analyzes the full dependency graph. |\n| \"The simulator is just slow today\" | Simulator issues indicate environment corruption. xcode-debugging checks systematically. |\n| \"I'll skip environment checks, it compiles locally\" | Environment-first saves 30+ min. Every time. |\n| \"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. |\n| \"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. |\n| \"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. `\u002Faxiom:console` or `\u002Fskill axiom-xclog-ref`. |\n\n## When NOT to Use (Conflict Resolution)\n\n**Do NOT use ios-build for these — use the correct router instead:**\n\n| Error Type | Correct Router | Why NOT ios-build |\n|------------|----------------|-------------------|\n| Swift 6 concurrency errors | **ios-concurrency** | Code error, not environment |\n| SwiftData migration errors | **ios-data** | Schema issue, not build environment |\n| \"Sending 'self' risks data race\" | **ios-concurrency** | Language error, not Xcode issue |\n| Type mismatch \u002F compilation errors | Fix the code | These are code bugs |\n\n**ios-build is for environment mysteries**, not code errors:\n- ✅ \"No such module\" when code is correct\n- ✅ Simulator won't boot\n- ✅ Clean build fails, incremental works\n- ✅ Zombie xcodebuild processes\n- ❌ Swift concurrency warnings\u002Ferrors\n- ❌ Database migration failures\n- ❌ Type checking errors in valid code\n\n## Example Invocations\n\nUser: \"My build failed with a linker error\"\n→ Invoke: `\u002Fskill axiom-xcode-debugging` (environment-first diagnostic)\n\nUser: \"Builds are taking 10 minutes\"\n→ Invoke: `\u002Fskill axiom-build-performance`\n\nUser: \"SPM won't resolve dependencies\"\n→ Invoke: `spm-conflict-resolver` agent\n\nUser: \"Two packages require different versions of the same dependency\"\n→ Invoke: `spm-conflict-resolver` agent\n\nUser: \"Duplicate symbol linker error\"\n→ Invoke: `spm-conflict-resolver` agent\n\nUser: \"I need to prepare for App Store security review\"\n→ Invoke: `security-privacy-scanner` agent\n\nUser: \"Do I need a Privacy Manifest?\"\n→ Invoke: `security-privacy-scanner` agent\n\nUser: \"Are there hardcoded credentials in my code?\"\n→ Invoke: `security-privacy-scanner` agent\n\nUser: \"How do I migrate from ObservableObject to @Observable?\"\n→ Invoke: `modernization-helper` agent\n\nUser: \"Update my code to use modern SwiftUI patterns\"\n→ Invoke: `modernization-helper` agent\n\nUser: \"Should I still use @StateObject?\"\n→ Invoke: `modernization-helper` agent\n\nUser: \"A beta tester said my app crashed\"\n→ Invoke: `\u002Fskill axiom-testflight-triage`\n\nUser: \"I see crashes in App Store Connect but don't know how to investigate\"\n→ Invoke: `\u002Fskill axiom-testflight-triage`\n\nUser: \"My crash logs aren't symbolicated\"\n→ Invoke: `\u002Fskill axiom-testflight-triage`\n\nUser: \"I need to review TestFlight feedback\"\n→ Invoke: `\u002Fskill axiom-testflight-triage`\n\nUser: \"How do I find crashes in App Store Connect?\"\n→ Invoke: `\u002Fskill axiom-app-store-connect-ref`\n\nUser: \"Where's the crash-free users metric in ASC?\"\n→ Invoke: `\u002Fskill axiom-app-store-connect-ref`\n\nUser: \"How do I export crash data from App Store Connect?\"\n→ Invoke: `\u002Fskill axiom-app-store-connect-ref`\n\nUser: \"Analyze this crash log\" [pastes .ips content]\n→ Invoke: `crash-analyzer` agent or `\u002Faxiom:analyze-crash`\n\nUser: \"Parse this .ips file: ~\u002FLibrary\u002FLogs\u002FDiagnosticReports\u002FMyApp.ips\"\n→ Invoke: `crash-analyzer` agent or `\u002Faxiom:analyze-crash`\n\nUser: \"Why did my app crash? Here's the report...\"\n→ Invoke: `crash-analyzer` agent or `\u002Faxiom:analyze-crash`\n\nUser: \"How do I set up MetricKit to collect crash data?\"\n→ Invoke: `\u002Fskill axiom-metrickit-ref`\n\nUser: \"How do I parse MXDiagnosticPayload?\"\n→ Invoke: `\u002Fskill axiom-metrickit-ref`\n\nUser: \"What's in MXCallStackTree and how do I decode it?\"\n→ Invoke: `\u002Fskill axiom-metrickit-ref`\n\nUser: \"My app hangs sometimes\"\n→ Invoke: `\u002Fskill axiom-hang-diagnostics`\n\nUser: \"The main thread is blocked and UI is unresponsive\"\n→ Invoke: `\u002Fskill axiom-hang-diagnostics`\n\nUser: \"Xcode Organizer shows hang diagnostics for my app\"\n→ Invoke: `\u002Fskill axiom-hang-diagnostics`\n\nUser: \"My app was killed by watchdog during launch\"\n→ Invoke: `\u002Fskill axiom-hang-diagnostics`\n\nUser: \"I have a crash report and need to reproduce it in the debugger\"\n→ Invoke: `\u002Fskill axiom-lldb`\n\nUser: \"How do I set breakpoints to catch this crash?\"\n→ Invoke: `\u002Fskill axiom-lldb`\n\nUser: \"My build is failing with BUILD FAILED but no error details\"\n→ Invoke: `build-fixer` agent or `\u002Faxiom:fix-build`\n\nUser: \"Build sometimes succeeds, sometimes fails\"\n→ Invoke: `build-fixer` agent or `\u002Faxiom:fix-build`\n\nUser: \"How can I speed up my Xcode build times?\"\n→ Invoke: `build-optimizer` agent or `\u002Faxiom:optimize-build`\n\nUser: \"No signing certificate found when I try to build\"\n→ Invoke: `\u002Fskill axiom-code-signing-diag`\n\nUser: \"errSecInternalComponent in my GitHub Actions CI\"\n→ Invoke: `\u002Fskill axiom-code-signing-diag`\n\nUser: \"How do I set up code signing for GitHub Actions?\"\n→ Invoke: `\u002Fskill axiom-code-signing`\n\nUser: \"What is my app printing to the console?\"\n→ Invoke: `\u002Fskill axiom-xclog-ref` or `\u002Faxiom:console`\n\nUser: \"I need to see the simulator console output\"\n→ Invoke: `\u002Fskill axiom-xclog-ref` or `\u002Faxiom:console`\n\nUser: \"The app fails silently, no error in the UI\"\n→ Invoke: `\u002Fskill axiom-xclog-ref` or `\u002Faxiom:console`\n\n",{"name":5,"license":15,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FCharlesWiltgen\u002FAxiom\u002Faxiom-ios-build",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill axiom-ios-build",{"tool":58,"command":59},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill axiom-ios-build",{"tool":61,"command":62},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill axiom-ios-build","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FCharlesWiltgen\u002FAxiom\u002Faxiom-ios-build\u002FSKILL.md",true,[66,72,76,80,86],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"_AIWF_IMPORT.json","REFERENCE","参考文档",345,"https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fgithub_imports\u002Fquality-manager-qmr\u002F_AIWF_IMPORT.json",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"references\u002Fmanagement-review-guide.md",10296,"https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fgithub_imports\u002Fquality-manager-qmr\u002Freferences\u002Fmanagement-review-guide.md",{"path":77,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fquality-kpi-framework.md",11786,"https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fgithub_imports\u002Fquality-manager-qmr\u002Freferences\u002Fquality-kpi-framework.md",{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"scripts\u002Fmanagement_review_tracker.py","SCRIPT","脚本",19492,"https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fgithub_imports\u002Fquality-manager-qmr\u002Fscripts\u002Fmanagement_review_tracker.py",{"path":87,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":88,"sourceHtmlUrl":89},"scripts\u002Fquality_effectiveness_monitor.py",19297,"https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fgithub_imports\u002Fquality-manager-qmr\u002Fscripts\u002Fquality_effectiveness_monitor.py",[91,105,115,124,130,137],{"skillNo":92,"name":93,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":101,"publishedAt":38},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[96],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[102,103,104],"model","model hierarchy","model hierarchy skill",{"skillNo":106,"name":107,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":111,"publishedAt":38},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[110],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},[112,113,114],"MCP","zoom","zoom mcp",{"skillNo":116,"name":117,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":38},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[121,122,123,113],"sdk","zoom apps sdk","apps",{"skillNo":125,"name":126,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":38},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[126],{"skillNo":131,"name":132,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":136,"publishedAt":38},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[135],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},[132],{"skillNo":138,"name":139,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":38},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[139]]