Mobile crash and vitals ingest (server half)
Watchtower ships no native or React Native SDK (gap G-27). It accepts what existing mobile SDKs emit.
Crashes (Sentry envelopes)
Send events to the Sentry-compatible endpoint. Events whose mechanism.type or exception type is an ANR, watchdog termination, out-of-memory, signal or Mach exception are stored as exceptions with tags crash.class (anr, watchdog_termination, oom, signal, mach), crash.handled=false and app.in_foreground. Device, OS and app contexts are kept; the user IP is never stored. Native frames need instruction_addr and debug_id; upload dSYM, ELF or ProGuard files for symbolication.
Sessions and vitals (RUM batch or OTLP)
Events with os.name of iOS or Android are stored with device_class=mobile. Vitals app_launch_cold, app_launch_warm, frozen_frames, slow_frames and app_hang are accepted. Launch vitals (milliseconds) get wt.rating: cold good at or below 2000, poor above 4000; warm good at or below 1000, poor above 2000.
Not built
Native SDKs, mobile replay, app-size analysis.