DeviceProfile

@objc
public class DeviceProfile : NSObject

Main entry point for the DeviceProfile SDK.

This class provides the primary interface for integrating device profile collection capabilities into Ping Identity journey flows. It handles registration of callback types and provides the foundation for device fingerprinting and profiling functionality.

Integration

Call registerCallbacks() during application startup to enable device profile collection in authentication journeys.

Usage Example

// In AppDelegate or SceneDelegate
Task { await DeviceProfile.registerCallbacks() }

Architecture

The DeviceProfile system consists of several key components:

  • Collectors: Gather specific types of device information
  • Callback: Handles server communication and configuration
  • Config: Controls what data is collected and how
  • Results: Structured data containing device profile information
  • Registers the DeviceProfile callback with the Ping Journey framework.

    This method must be called during application initialization to enable device profile collection capabilities within authentication journeys. It registers the DeviceProfileCallback class with the callback registry using the standard device profile callback identifier.

    Registration Process

    1. Registers DeviceProfileCallback class with CallbackRegistry
    2. Associates it with the “DeviceProfileCallback” type identifier
    3. Enables server-initiated device profiling in journey flows

    Timing

    • Must be called before any journey that uses device profiling
    • Typically called in AppDelegate.application(_:didFinishLaunchingWithOptions:)
    • Registration is idempotent - safe to call multiple times

    Example Integration

    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {
        func application(_ application: UIApplication,
                       didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
            // Register device profiling capability
            DeviceProfile.registerCallbacks()
            return true
        }
    }
    

    Declaration

    Swift

    @objc
    public static func registerCallbacks()