appium-xcuitest-driver
Version:
Appium driver for iOS using XCUITest for backend
64 lines • 2.36 kB
TypeScript
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