Files
2026-03-07 18:19:16 +01:00

32 lines
956 B
Swift

import SwiftSignalKit
import DeviceCheck
public enum SGDeviceTokenError {
case unsupportedDevice
case generic(String)
}
public func getDeviceToken() -> Signal<String, SGDeviceTokenError> {
return Signal { subscriber in
let currentDevice = DCDevice.current
if currentDevice.isSupported {
currentDevice.generateToken { (data, error) in
guard error == nil else {
subscriber.putError(.generic(error!.localizedDescription))
return
}
if let tokenData = data {
subscriber.putNext(tokenData.base64EncodedString())
subscriber.putCompletion()
} else {
subscriber.putError(.generic("Empty Token"))
}
}
} else {
subscriber.putError(.unsupportedDevice)
}
return ActionDisposable {
}
}
}