# Revyl > Revyl runs your mobile app on cloud devices (iOS simulators and Android emulators) and records replayable evidence of every run: video, a step timeline with grounding screenshots, CPU/memory/FPS, a network waterfall, and device logs. Reproduce and debug a bug on a supported model and OS pair. ## Use cases Symptom-first guides that diagnose a common mobile bug and show the runtime evidence a cloud-device run captures. Clean markdown mirrors: - [Why a bug only happens sometimes, and how to reproduce it](https://revyl.com/use-cases/bug-only-happens-sometimes.md): 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. - [Reproduce a bug that only happens on first launch](https://revyl.com/use-cases/bug-only-on-first-launch.md): 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. - [App crashes on launch only on iOS 18](https://revyl.com/use-cases/crash-on-launch-ios-18.md): Launches fine on iOS 17 but dies on iOS 18? Usually a stricter runtime check on iOS 18, a changed system value, or a dyld symbol that will not resolve. - [App layout breaks only on iPhone SE](https://revyl.com/use-cases/layout-broken-iphone-se.md): 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. - [API requests work in TestFlight but fail in production](https://revyl.com/use-cases/api-works-testflight-fails-production.md): 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. - [App breaks after an update for only some users](https://revyl.com/use-cases/app-breaks-after-update-some-users.md): 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. - [iOS app loses state when backgrounded](https://revyl.com/use-cases/state-lost-when-app-backgrounded.md): 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. - [App stuck on a loading spinner that never resolves](https://revyl.com/use-cases/app-stuck-infinite-loading-spinner.md): 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. - [iOS app memory grows until it crashes](https://revyl.com/use-cases/memory-grows-until-app-crashes.md): 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. - [App drops frames when scrolling a long list](https://revyl.com/use-cases/app-drops-frames-scrolling-list.md): 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. ## More - [Use cases hub](https://revyl.com/use-cases/) - [Docs](https://docs.revyl.com) - [Pricing](https://revyl.com/pricing/) - [Start free](https://app.revyl.ai/signup)