Debugging & installationId
Diagnostics for OnsideKit: the installationId publisher, SDK console logging, and the SSL-pinning debug switch.
installationId
Onside.installationId publishes the SDK’s installation identifier when available. Include it in support requests, but do not use it as an account identifier or assume every non-nil value uniquely identifies an installation.
static let installationId: AnyPublisher<String?, Never>The publisher can emit nil while loading or on error. It can also emit the shared fallback marker "non-onside", which is not a unique identifier. Subscribe after initialization:
import Combine
import OnsideKit
var cancellables = Set<AnyCancellable>()
Onside.initialize()
Onside.installationId
.compactMap { $0 }
.sink { id in
if id == "non-onside" {
print("No unique Onside installation ID is available")
} else {
print("Onside installation id: \(id)")
}
}
.store(in: &cancellables)The SDK also generates a separate persistent local UUID for its network headers. This UUID is not exposed by Onside.installationId and does not require host-app configuration.
Console logging
OnsideKit prints diagnostic messages prefixed with [Onside]:. Watch for them during development:
Used before initialization — a warning that an API was called before
Onside.initialize().Event validation — warnings when an event name or parameter is truncated or dropped. See Building funnels with event tracking.
Local testing — confirmation that a
.storekitfile was loaded, or an error if it couldn't be parsed. See Local Testing.
Disabling SSL pinning (debug only)
To inspect SDK network traffic through a TLS-intercepting proxy (e.g. Charles or Proxyman), disable certificate pinning at initialization:
disableSSLPinning is a debugging aid only. The setting is persisted across launches, and disabling pinning weakens transport security — never ship it enabled. Leave it false (the default) in production builds.
Last updated
Was this helpful?