UNPKG

appium-xcuitest-driver

Version:

Appium driver for iOS using XCUITest for backend

66 lines 2.37 kB
import type { AppiumLogger } from '@appium/types'; import type { LockdownInfo } from '../commands/types'; import { type RemoteXPCFacade } from './remote-xpc'; /** * 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; } interface CreateLockdownClientOptions { allowLegacyFallback?: boolean; facade?: RemoteXPCFacade | null; logger?: AppiumLogger; } /** * Unified lockdown access for real devices. * * On iOS/tvOS 18+ attempts a tunnel registry RemoteXPC connection and lockdown over RSD * (`createLockdownServiceForTunnel`). 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 strategy; private readonly remoteXPCFacade; private constructor(); /** * @param udid - Device UDID * @param opts - Creation options */ static createForDevice(udid: string, opts?: CreateLockdownClientOptions): 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>; private requireRemoteXPCFacade; /** * 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; private runWithTunnelLockdown; } export {}; //# sourceMappingURL=lockdown-client.d.ts.map