Setup & Installation
Or with the ClawHub CLI, for registry-managed skill folders outside a full OpenClaw workspace:
What This Skill Does
Covers performance profiling for native macOS and iOS apps using xctrace CLI and the Instruments UI. Addresses correct binary selection, CLI arguments, stack exports, and common gotchas like LaunchServices resolving the wrong app bundle.
Instruments and xctrace have non-obvious argument ordering and bundle-resolution gotchas that cause silent profiling errors; this skill documents the fixes directly.
When to use it
- Profiling slow app startup on macOS
- Capturing CPU samples from a running iOS app by PID
- Exporting time-profile stacks to XML for offline analysis
- Identifying hot frames in a native app's call tree
- Attaching a profiler to a live process without restarting it
Example Workflow
Here's how your AI assistant might use this skill in practice.
User asks: how do I profile my macOS app's startup with xctrace?
- 1Run `xcrun xctrace list templates` to confirm Time Profiler is available
- 2Locate the direct binary path to avoid LaunchServices resolving an installed bundle instead of the local build
- 3Run `xcrun xctrace record --template 'Time Profiler' --time-limit 60s --output /tmp/App.trace --launch -- /path/App.app/Contents/MacOS/App`
- 4Verify the traced process path matches the intended build using `ps -p <pid> -o comm= -o command=`
- 5Open the trace with `open -a Instruments /tmp/App.trace` and review the call tree with Invert Call Tree and Hide System Libraries
A .trace file opened in Instruments showing CPU samples and hot frames covering the app's startup path
Requirements
Accounts, API keys, or tools you or your AI assistant may need to set up while using this skill.