UNPKG

appium-xcuitest-driver

Version:

Appium driver for iOS using XCUITest for backend

64 lines 2.36 kB
import type { AppiumLogger } from '@appium/types'; import type { LockdownInfo } from '../commands/types'; import type { XCUITestDriverOpts } from '../driver'; /** * Shape returned by {@linkcode utilities.getDeviceTime} in appium-ios-device. */ export interface DeviceTimeLockdownFields { /** UTC timestamp in seconds since 1970-01-01T00:00:00Z */ timestamp: number; /** UTC offset in minutes */ utcOffset: number; } /** * Unified lockdown access for real devices. * * On iOS/tvOS 18+ attempts a tunnel registry RemoteXPC connection and lockdown over RSD * (`createLockdownServiceByTunnel`). When that path is unavailable, uses * {@linkcode utilities} from `appium-ios-device` (USB/local usbmux). */ export declare class LockdownClient { private readonly udid; private readonly log; private readonly remotexpc; private readonly strategy; private readonly remoteXpcConnection; private constructor(); /** * @param udid - Device UDID * @param opts - Driver options (used for iOS version gating) * @param log - Logger */ static createForDevice(udid: string, opts: XCUITestDriverOpts, log?: AppiumLogger): Promise<LockdownClient>; private static coerceFiniteNumber; close(): Promise<void>; /** * Full lockdown `GetValue` payload (`GetValue` with no key/domain). */ getDeviceInfo(): Promise<LockdownInfo>; /** * Device ProductVersion from lockdown. * * Uses the same lockdown selection strategy as {@linkcode getDeviceInfo}. * If a RemoteXPC lockdown payload does not include ProductVersion, throws. */ getOSVersion(): Promise<string>; /** * Fields needed to format device local time (same contract as {@linkcode utilities.getDeviceTime}). */ getDeviceTimeFields(): Promise<DeviceTimeLockdownFields>; /** * Legacy ios-device can provide inconsistent offset payloads. Normalize to a final offset in * minutes for consumers. */ private normalizeUtcOffsetMinutes; private runWithRemotexpcUsbmuxLockdown; private runWithRemotexpcLockdown; private runWithRemotexpcLockdownRequiringValue; private getRemotexpcLockdownLabel; /** * Runs an operation with lockdown over the RSD tunnel. */ private runWithTunnelLockdown; } //# sourceMappingURL=lockdown-client.d.ts.map