Configuration

Customize PipeKit to fit your app's needs.

Basic Configuration

Initialize PipeKit in your AppDelegate or app entry point:

AppDelegate.swift
import PipeKit
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
PipeKit.configure(
apiKey: "pk_live_your_api_key",
config: PipeKitConfig(
enableSessionReplay: true,
enableFlows: true,
captureNetwork: true,
captureConsoleLogs: true
)
)
return true
}

Configuration Options

enableSessionReplayBool

Enable session replay (video + logs + network capture).

Default: true

enableFlowsBool

Enable dynamic flow composition and remote sync.

Default: true

captureNetworkBool

Capture network requests including URL, method, status code, and timing.

Default: true

captureConsoleLogsBool

Capture print statements and os_log messages.

Default: true

Upload Configuration

Configure how and when sessions are uploaded to the server:

Upload Settings
// Auto-upload is enabled by default after PipeKit.configure()
// Sessions upload immediately when online, queue when offline
// Disable auto-upload if you prefer manual control
PipeKit.autoUploadEnabled = false
// Manual upload
PipeKit.uploadSession(sessionId: "session_id") { result in
switch result {
case .success(let response):
print("Uploaded: \(response.sessionId)")
case .failure(let error):
print("Failed: \(error)")
}
}
// Upload all pending sessions
PipeKit.uploadAllSessions { results in
let succeeded = results.filter { if case .success = $0.1 { return true }; return false }
print("\(succeeded.count)/\(results.count) uploaded")
}

SwiftUI Configuration

For SwiftUI apps, initialize in your App struct:

YourApp.swift
import SwiftUI
import PipeKit
@main
struct YourApp: App {
init() {
PipeKit.configure(apiKey: "pk_live_your_api_key")
PipeKit.startSession()
}
var body: some Scene {
WindowGroup {
ContentView()
.trackScreen("Home")
}
}
}

Environment-based Configuration

Use different settings for development and production:

swift
#if DEBUG
let apiKey = "pk_test_development_key"
#else
let apiKey = "pk_live_production_key"
#endif
PipeKit.configure(apiKey: apiKey)

Tip: Use separate API keys

Create separate API keys for development and production in your dashboard. This keeps test sessions separate from real user data.

Next: Recording Sessions

Learn how to manually start/stop recording and control session behavior.

Continue to Recording →