XuqmGroup-iOSSDK/Sources/XuqmSDK/License/DeviceInfoProvider.swift
XuqmGroup 60ac8f0283 feat(license): add LicenseSDK module
Implements device authorization registration and verification:
- AES-256-GCM + PBKDF2 decryption of .xuqmlicense files
- Keychain storage for token and deviceId
- UIDevice.identifierForVendor for device ID
- 10-minute cache with offline fallback
- LicenseResult sealed type (success/error)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 02:25:26 +08:00

46 行
1.1 KiB
Swift

#if canImport(UIKit)
import UIKit
#endif
import Foundation
enum DeviceInfoProvider {
static func getDeviceId(store: LicenseStore) -> String {
if let existing = store.deviceId { return existing }
#if canImport(UIKit)
let id = UIDevice.current.identifierForVendor?.uuidString ?? UUID().uuidString
#else
let id = UUID().uuidString
#endif
store.deviceId = id
return id
}
static func getDeviceName() -> String {
#if canImport(UIKit)
return UIDevice.current.name
#else
return Host.current().localizedName ?? "Mac"
#endif
}
static func getDeviceModel() -> String {
#if canImport(UIKit)
return UIDevice.current.model
#else
return "Mac"
#endif
}
static func getDeviceVendor() -> String { "Apple" }
static func getOsVersion() -> String {
#if canImport(UIKit)
return "iOS \(UIDevice.current.systemVersion)"
#else
let v = ProcessInfo.processInfo.operatingSystemVersion
return "macOS \(v.majorVersion).\(v.minorVersion).\(v.patchVersion)"
#endif
}
}