What problem does it solve? Profiling iOS app launch and runtime latency on the simulator is hard when traces are unsymbolicated, overwritten between runs, or mixed with idle thread noise. This Skill provides a repeatable workflow to link ETTrace into a simulator app, collect UUID-matched dSYMs, capture one focused flow, and analyze the processed flamegraph JSON for CPU-heavy stacks. ## Core Features & Use Cases - Guided ETTrace capture: Step-by-step instructions to build a simulator ETTrace.xcframework, link it into the app target, and record launch or runtime traces with the Homebrew ettrace runner. - dSYM collection script: scripts/collect_ios_dsyms.sh gathers UUID-matched dSYMs for the app executable and embedded frameworks, with required-framework enforcement so symbolication gaps fail loudly. - Flamegraph analysis script: scripts/analyze_flamegraph_json.py validates the ETTrace v1.1.0 processed JSON shape and reports top active self frames and inclusive stacks, excluding idle and unattributed frames. - Use Case: An engineer investigating slow cold launch links ETTrace into the debug simulator build, captures a launch trace with matching dSYMs, and reads the ranked hotspot report to find the first-party functions dominating startup time. ## Quick Start Ask the agent to capture a symbolicated ETTrace profile of one focused flow in your iOS simulator app and report the top CPU-heavy stacks.