UNPKG

appium-xcuitest-driver

Version:

Appium driver for iOS using XCUITest for backend

46 lines 1.8 kB
import type { AppiumLogger } from '@appium/types'; import type { RemoteXPCFacade } from './remote-xpc'; /** * Options accepted by {@link ZipConduitClient.install} */ export interface ZipConduitInstallOptions { /** Maximum number of milliseconds to wait for the streamed installation to finish */ timeoutMs?: number; } /** * Thin wrapper around the RemoteXPC streaming `zip_conduit` service. * * `zip_conduit` streams an `.ipa` straight into the on-device installer, avoiding the separate AFC upload + * `installation_proxy` round trip. It is RemoteXPC-only (iOS/tvOS 18+ with an * active tunnel) and only accepts `.ipa` archives, so callers must keep a * fallback for unpacked `.app` bundles and older devices. */ export declare class ZipConduitClient { private readonly service; private readonly _log; private _lastLoggedProgress?; private constructor(); /** * Create a zip_conduit client for the device * * @param udid - Device UDID * @param logger - Optional logger * @returns A connected client, or `null` when zip_conduit is unavailable */ static create(udid: string, logger: AppiumLogger | undefined, facade: RemoteXPCFacade | null): Promise<ZipConduitClient | null>; /** * Stream-install an `.ipa`. Handles both fresh installs and upgrades; the * device resolves the target by bundle id from the archive contents, so no * separate upgrade call is needed. * * @param ipaPath - Absolute path to the local `.ipa` * @param opts - Install options */ install(ipaPath: string, opts?: ZipConduitInstallOptions): Promise<void>; /** * Close the underlying socket. */ close(): Promise<void>; private logInstallProgress; } //# sourceMappingURL=zip-conduit-client.d.ts.map