Skip to main content

SwiftUI

SwiftUI App Lifecycle

If your app adopts the SwiftUI App Life Cycle, the simplest approach is to launch Bugsee within the App conformer’s initializer:

import Bugsee
import SwiftUI

@main
struct BugseeSwiftUIApp: App {
init() {
let options : [String: Any] =
[ BugseeMaxRecordingTimeKey : 60,
BugseeShakeToReportKey : false,
BugseeScreenshotToReportKey : true,
BugseeCrashReportKey : true ]

Bugsee.launch(token: "<your_app_token>", options: options)
}
}

Protecting views

All system secure fields (SecureField) are hidden from the recorded video automatically. In addition we support a way to mark your custom sensitive views so they will be treated similarly. We provide a View extension for this (View+Bugsee.swift) with bugseeProtect() and bugseeProtect(isEnabled:) methods.

Static protection (view is always hidden):

Text(landmark.description)
.bugseeProtect()

Dynamic protection (visibility controlled by state or binding):

@State private var isHidden = false

Text(landmark.description)
.bugseeProtect(isEnabled: $isHidden)
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
isHidden = true
}
}