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