← ClaudeAtlas

ios-ettrace-profilerlisted

Capture and interpret symbolicated ETTrace profiles for iOS simulator startup, scrolling, navigation, rendering, runtime flows, before/after comparisons, and CPU hotspots.
Xopoko/plug-n-skills · ★ 3 · AI & Automation · score 76
Install: claude install-skill Xopoko/plug-n-skills
# iOS ETTrace Profiler Capture one focused, symbolicated ETTrace profile from an iOS simulator app. Pair with `ios-simulator-debugger` for build/install/launch/UI/log work. ## Workflow 1. Define one flow with clear start/stop points; avoid broad "use the app for a while" traces. 2. Build the exact simulator app. 3. Temporarily link `ETTrace.xcframework` into the app target, then remove it unless the user wants to keep it. 4. Collect UUID-matched app and first-party framework dSYMs. 5. Capture launch or runtime trace with a TTY. 6. Preserve fresh processed `output_<thread>.json` files immediately. 7. Analyze processed JSON only; report artifacts, hotspots, symbols, and caveats. ## Setup ```bash RUN_DIR="${RUN_DIR:-$(mktemp -d "${TMPDIR:-/tmp}/codex-ios-ettrace.XXXXXX")}" mkdir -p "$RUN_DIR" brew install emergetools/homebrew-tap/ettrace ``` The host runner is `ettrace`; the app must link an iOS Simulator `ETTrace.xcframework`. Expect ETTrace v1.1.0-style processed JSON with top-level `nodes`. Prefer a repo-vendored simulator xcframework. Otherwise build one into `RUN_DIR` from `EmergeTools/ETTrace` using the runner-matching tag. Link the app target, not tests/resources/launcher targets. Confirm launch logs include `Starting ETTrace`. Profile one instrumented simulator app at a time because simulator mode uses a fixed localhost port. Bazel: `apple_dynamic_xcframework_import`. Xcode: temporary Link Binary With Libraries / Embed Frameworks for the debug simulator build. #