iOS Configuration
Custom Analytics
SquadAnalytics.shared.customHandler = { eventName, properties in
Analytics.track(eventName, properties: properties)
}
Custom Logger
SquadLogger.shared.sink = MyCustomLogSink()
SquadLogger.shared.minLevel = .warn
Implement SquadLogSink:
class MyCustomLogSink: SquadLogSink {
func log(level: SquadLogLevel, message: String, context: [String: Any]) {
Sentry.addBreadcrumb(message, level: level.rawValue, data: context)
}
}
Token Storage
Tokens are stored in the iOS Keychain by default. No configuration needed.
Error Handling
do {
try await SquadSDK.setup(partnerId: "your-id", apiKey: "your-key")
} catch SquadSDKError.partnerNotFound(let id) {
print("Partner \(id) not found")
} catch SquadSDKError.invalidPartnerID {
print("Invalid partner ID")
} catch {
print("Setup failed: \(error)")
}
Cleanup
SquadSDK.shared = nil