Your app is doing something you can't reproduce
Every page here starts from a symptom, explains the real causes, and shows the one piece of runtime evidence that pins it down. When the bug only shows up on a device or OS you don't have, you reproduce it on a cloud device and read the record.
Why a bug only happens sometimes, and how to reproduce it
A bug that fires on maybe one tap in eight is usually a race whose timing you can't control locally. Here is how to force it and record the run that broke.
Read the diagnosis → Screen captureReproduce a bug that only happens on first launch
A crash or blank screen on a fresh install that never recurs comes from empty first-run state that vanishes the instant you relaunch and the app writes it.
Read the diagnosis → Crash reportApp crashes on launch only on iOS 18
App crashes on launch only on iOS 18 usually come from a stricter runtime check or a changed system value. A missing dyld symbol rarely explains that.
Read the diagnosis → Rendered layoutApp layout breaks only on iPhone SE
Your UI fits a 6.7-inch simulator but clips on the iPhone SE, the shortest modern iPhone at 667 points. Why short screens break the layout, and how to see it.
Read the diagnosis → Network waterfallAPI requests work in TestFlight but fail in production
API calls pass in TestFlight but 404, stall on TLS, or fail in the App Store build. The cause is a runtime environment difference the request record exposes.
Read the diagnosis → Screen captureApp breaks after an update for only some users
An update that breaks for only some users is new code meeting old persisted on-device state; reproduce it by upgrading over the old build, not installing fresh.
Read the diagnosis → Screen captureiOS app loses state when backgrounded
Your iOS app forgets the session and screen after the user switches away and returns, because iOS terminated the suspended process and nothing restored it.
Read the diagnosis → Network waterfallApp stuck on a loading spinner that never resolves
A spinner that never resolves means the request never returned, the response was dropped, or the loading flag never cleared; a runtime record tells you which.
Read the diagnosis → Memory curveiOS app memory grows until it crashes
Memory climbs every time you open a screen and never falls back, then iOS jetsams the app with no crash log. The curve shape tells you which leak it is.
Read the diagnosis → FPS traceApp drops frames when scrolling a long list
A long list scrolls clean for a screen, then snags: main-thread work during cell reuse (decode, layout, formatting) blows the frame budget. Read the FPS trace.
Read the diagnosis →