Install
The module you import is alwaysReplay, regardless of installer.
Initialize
1
Import and start at launch
Start Replayfy as early as possible — recording begins immediately.
2
SwiftUI-only apps
No
AppDelegate? Start it from App.init.3
Identify and track (optional)
Attach a known user and record custom events.A
properties["picture"] (or its alias ["avatar"]) set to a public https image URL becomes the user’s avatar on the recording header and Users list — top-level or nested in customProps; non-URL values are ignored.Verify
Run the app, interact for a few seconds, then background it. Your first session appears in the Replayfy dashboard within a minute.
Wire up
Replay.addVerificationListener { ... } to light up an in-app “Verify integration” state — it fires once after the first successful upload.Configuration
OnlyapiKey and apiHost are required. Pass any subset to ReplayConfig(...).
API reference
All methods are static on theReplay type.
Lifecycle
Identify & analytics
Error monitoring
Uncaught exceptions and crashes are captured automatically when
captureErrors is true.
Screens
Exclusion is distinct from
occludeSensitiveScreen(_:) — that keeps recording but blanks the frame, whereas an excluded screen captures no frames at all. Seed the list at launch, or manage it at runtime:
Logging
Metadata
Text input
Network capture
SetcaptureNetwork: true. URLSession.shared is captured automatically. For a custom configuration, register it before creating the session.
Consent / opt-out
Deep links
Integration verification
Cross-platform bridges
Entry points for host frameworks (React Native, Flutter) that capture interactions, inputs, and frames themselves. Native iOS apps don’t need them.Privacy & masking
Sensitive content never has to leave the device. Secure/password fields (isSecureTextEntry) are masked automatically; everything else is opt-in.
Choose a mask style
ReplayMaskStyle values: .blur, .overlay, .pixelate.
UIKit masking
SwiftUI masking
Import the optionalReplaySwiftUI module:
replayOcclude(blockGestures:) also suppresses taps on the masked region when blockGestures is true (the default).
Identify users
Link sessions to known users and their properties.
Track events
Fire custom events to power funnels and filters.
Privacy & masking
Redact sensitive views, fields, and regions.