appium-xcuitest-driver 7.11.2 → 7.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/build/lib/ios-fs-helpers.d.ts.map +1 -1
- package/build/lib/ios-fs-helpers.js +10 -2
- package/build/lib/ios-fs-helpers.js.map +1 -1
- package/build/lib/real-device-management.d.ts +1 -1
- package/build/lib/real-device-management.d.ts.map +1 -1
- package/build/lib/real-device-management.js +4 -3
- package/build/lib/real-device-management.js.map +1 -1
- package/build/lib/real-device.d.ts +19 -4
- package/build/lib/real-device.d.ts.map +1 -1
- package/build/lib/real-device.js +24 -15
- package/build/lib/real-device.js.map +1 -1
- package/lib/ios-fs-helpers.js +10 -2
- package/lib/real-device-management.js +9 -3
- package/lib/real-device.js +27 -16
- package/npm-shrinkwrap.json +35 -23
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [7.11.3](https://github.com/appium/appium-xcuitest-driver/compare/v7.11.2...v7.11.3) (2024-04-12)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* Tune appPushTimeout capability ([#2384](https://github.com/appium/appium-xcuitest-driver/issues/2384)) ([0c42d55](https://github.com/appium/appium-xcuitest-driver/commit/0c42d557d459f8ec25277dc1c2672a0045b16329))
|
|
7
|
+
|
|
1
8
|
## [7.11.2](https://github.com/appium/appium-xcuitest-driver/compare/v7.11.1...v7.11.2) (2024-04-09)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ios-fs-helpers.d.ts","sourceRoot":"","sources":["../../lib/ios-fs-helpers.js"],"names":[],"mappings":";;;;;;;;;;;;AAWA;;;;;;;GAOG;AACH,qCALW,GAAG,cAEH,MAAM,GACJ,QAAQ,MAAM,CAAC,CAY3B;AAgBD;;;;;;;GAOG;AACH,uCALW,GAAG,kBAEH,MAAM,GACJ,QAAQ,MAAM,CAAC,CAsE3B;AA0BD;;;;;;;;GAQG;AACH,qCANW,GAAG,cAEH,MAAM,cAEN,MAAM,iBAqBhB;AAED;;;;;;;GAOG;AAEH;;;;;;;;;GASG;AACH,uCAPW,GAAG,eAEH,MAAM,eACN,MAAM,SAEN,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ios-fs-helpers.d.ts","sourceRoot":"","sources":["../../lib/ios-fs-helpers.js"],"names":[],"mappings":";;;;;;;;;;;;AAWA;;;;;;;GAOG;AACH,qCALW,GAAG,cAEH,MAAM,GACJ,QAAQ,MAAM,CAAC,CAY3B;AAgBD;;;;;;;GAOG;AACH,uCALW,GAAG,kBAEH,MAAM,GACJ,QAAQ,MAAM,CAAC,CAsE3B;AA0BD;;;;;;;;GAQG;AACH,qCANW,GAAG,cAEH,MAAM,cAEN,MAAM,iBAqBhB;AAED;;;;;;;GAOG;AAEH;;;;;;;;;GASG;AACH,uCAPW,GAAG,eAEH,MAAM,eACN,MAAM,SAEN,iBAAiB,iBA+G3B"}
|
|
@@ -253,7 +253,7 @@ async function pushFolder(afcService, srcRootPath, dstRootPath, opts = {}) {
|
|
|
253
253
|
readStream.on('error', onStreamError);
|
|
254
254
|
});
|
|
255
255
|
readStream.pipe(writeStream);
|
|
256
|
-
await filePushPromise.timeout(timeoutMs);
|
|
256
|
+
await filePushPromise.timeout(Math.max(timeoutMs - timer.getDuration().asMilliSeconds, 60000));
|
|
257
257
|
};
|
|
258
258
|
if (enableParallelPush) {
|
|
259
259
|
logger_1.default.debug(`Proceeding to parallel files push (max ${MAX_IO_CHUNK_SIZE} writers)`);
|
|
@@ -263,18 +263,26 @@ async function pushFolder(afcService, srcRootPath, dstRootPath, opts = {}) {
|
|
|
263
263
|
// keep the push queue filled
|
|
264
264
|
if (pushPromises.length >= MAX_IO_CHUNK_SIZE) {
|
|
265
265
|
await bluebird_1.default.any(pushPromises);
|
|
266
|
+
const elapsedMs = timer.getDuration().asMilliSeconds;
|
|
267
|
+
if (elapsedMs > timeoutMs) {
|
|
268
|
+
throw new bluebird_1.default.TimeoutError(`Timed out after ${elapsedMs} ms`);
|
|
269
|
+
}
|
|
266
270
|
}
|
|
267
271
|
lodash_1.default.remove(pushPromises, (p) => p.isFulfilled());
|
|
268
272
|
}
|
|
269
273
|
if (!lodash_1.default.isEmpty(pushPromises)) {
|
|
270
274
|
// handle the rest of push promises
|
|
271
|
-
await bluebird_1.default.all(pushPromises);
|
|
275
|
+
await bluebird_1.default.all(pushPromises).timeout(Math.max(timeoutMs - timer.getDuration().asMilliSeconds, 60000));
|
|
272
276
|
}
|
|
273
277
|
}
|
|
274
278
|
else {
|
|
275
279
|
logger_1.default.debug(`Proceeding to serial files push`);
|
|
276
280
|
for (const relativeFilePath of filesToPush) {
|
|
277
281
|
await pushFile(relativeFilePath);
|
|
282
|
+
const elapsedMs = timer.getDuration().asMilliSeconds;
|
|
283
|
+
if (elapsedMs > timeoutMs) {
|
|
284
|
+
throw new bluebird_1.default.TimeoutError(`Timed out after ${elapsedMs} ms`);
|
|
285
|
+
}
|
|
278
286
|
}
|
|
279
287
|
}
|
|
280
288
|
logger_1.default.debug(`Successfully pushed ${support_1.util.pluralize('folder', foldersToPush.length, true)} ` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ios-fs-helpers.js","sourceRoot":"","sources":["../../lib/ios-fs-helpers.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,wDAAyB;AACzB,4CAAsE;AACtE,gDAAwB;AACxB,sDAA2B;AAE3B,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACpC,0DAA0D;AAC1D,oEAAoE;AACpE,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B;;;;;;;GAOG;AACH,KAAK,UAAU,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC5C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,IAAI,kBAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,WAAW,CAAC;IAClB,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;
|
|
1
|
+
{"version":3,"file":"ios-fs-helpers.js","sourceRoot":"","sources":["../../lib/ios-fs-helpers.js"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @property {boolean} [skipUninstall] Whether to skip app uninstall before installing it
|
|
5
5
|
* @property {'serial'|'parallel'|'ios-deploy'} [strategy='serial'] One of possible install strategies ('serial', 'parallel', 'ios-deploy')
|
|
6
|
-
* @property {number} [timeout] App install timeout
|
|
6
|
+
* @property {number} [timeout=480000] App install timeout
|
|
7
7
|
* @property {boolean} [shouldEnforceUninstall] Whether to enforce the app uninstallation. e.g. fullReset, or enforceAppInstall is true
|
|
8
8
|
*/
|
|
9
9
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"real-device-management.d.ts","sourceRoot":"","sources":["../../lib/real-device-management.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"real-device-management.d.ts","sourceRoot":"","sources":["../../lib/real-device-management.js"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,wLA6CC;AAED;;;GAGG;AACH,6EAFa,QAAQ,IAAI,CAAC,CAWzB;AAED;;;;;;;GAOG;AACH,iFAFY,OAAO,CAiBlB;AAED;;;GAGG;AACH,qEAFa,QAAQ,MAAM,CAAC,CAe3B;;;;;;;;;;;;;;;;;;;;;;yBAGY,OAAO,eAAe,EAAE,UAAU;6BAClC,OAAO,UAAU,EAAE,cAAc"}
|
|
@@ -7,12 +7,13 @@ exports.detectUdid = exports.applySafariStartupArgs = exports.runRealDeviceReset
|
|
|
7
7
|
const lodash_1 = __importDefault(require("lodash"));
|
|
8
8
|
const app_utils_1 = require("./app-utils");
|
|
9
9
|
const appium_ios_device_1 = require("appium-ios-device");
|
|
10
|
+
const DEFAULT_APP_INSTALLATION_TIMEOUT_MS = 8 * 60 * 1000;
|
|
10
11
|
/**
|
|
11
12
|
* @typedef {Object} InstallOptions
|
|
12
13
|
*
|
|
13
14
|
* @property {boolean} [skipUninstall] Whether to skip app uninstall before installing it
|
|
14
15
|
* @property {'serial'|'parallel'|'ios-deploy'} [strategy='serial'] One of possible install strategies ('serial', 'parallel', 'ios-deploy')
|
|
15
|
-
* @property {number} [timeout] App install timeout
|
|
16
|
+
* @property {number} [timeout=480000] App install timeout
|
|
16
17
|
* @property {boolean} [shouldEnforceUninstall] Whether to enforce the app uninstallation. e.g. fullReset, or enforceAppInstall is true
|
|
17
18
|
*/
|
|
18
19
|
/**
|
|
@@ -27,12 +28,12 @@ async function installToRealDevice(app, bundleId, opts = {}) {
|
|
|
27
28
|
this.log.debug('No device id, app or bundle id, not installing to real device.');
|
|
28
29
|
return;
|
|
29
30
|
}
|
|
30
|
-
const { skipUninstall, strategy, timeout } = opts;
|
|
31
|
+
const { skipUninstall, strategy, timeout = DEFAULT_APP_INSTALLATION_TIMEOUT_MS, } = opts;
|
|
31
32
|
if (!skipUninstall) {
|
|
32
33
|
this.log.info(`Reset requested. Removing app with id '${bundleId}' from the device`);
|
|
33
34
|
await device.remove(bundleId);
|
|
34
35
|
}
|
|
35
|
-
this.log.debug(`Installing '${app}' on device with UUID '${device.udid}'...`);
|
|
36
|
+
this.log.debug(`Installing '${app}' on the device with UUID '${device.udid}'...`);
|
|
36
37
|
try {
|
|
37
38
|
await device.install(app, timeout, strategy);
|
|
38
39
|
this.log.debug('The app has been installed successfully.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"real-device-management.js","sourceRoot":"","sources":["../../lib/real-device-management.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,2CAAmD;AACnD,yDAA4C;AAE5C;;;;;;;GAOG;AAEH;;;;;GAKG;AACI,KAAK,UAAU,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE;IAChE,MAAM,MAAM,GAAG,yBAAyB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvD,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,MAAM,
|
|
1
|
+
{"version":3,"file":"real-device-management.js","sourceRoot":"","sources":["../../lib/real-device-management.js"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
* @returns {Promise<string[]>}
|
|
3
3
|
*/
|
|
4
4
|
export function getConnectedDevices(): Promise<string[]>;
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {Object} InstallOrUpgradeOptions
|
|
7
|
+
* @property {number} timeout Install/upgrade timeout in milliseconds
|
|
8
|
+
* @property {boolean} isUpgrade Whether it is an app upgrade or a new install
|
|
9
|
+
*/
|
|
5
10
|
export class RealDevice {
|
|
6
11
|
/**
|
|
7
12
|
* @param {string} udid
|
|
@@ -26,16 +31,16 @@ export class RealDevice {
|
|
|
26
31
|
/**
|
|
27
32
|
*
|
|
28
33
|
* @param {string} app
|
|
29
|
-
* @param {number}
|
|
34
|
+
* @param {number} timeout
|
|
30
35
|
* @param {'ios-deploy'|'serial'|'parallel'|null} strategy
|
|
31
36
|
* @privateRemarks This really needs type guards built out
|
|
32
37
|
*/
|
|
33
|
-
install(app: string, timeout
|
|
38
|
+
install(app: string, timeout: number, strategy?: 'ios-deploy' | 'serial' | 'parallel' | null): Promise<void>;
|
|
34
39
|
/**
|
|
35
40
|
* @param {string} bundlePathOnPhone
|
|
36
|
-
* @param {
|
|
41
|
+
* @param {InstallOrUpgradeOptions} opts
|
|
37
42
|
*/
|
|
38
|
-
installOrUpgradeApplication(bundlePathOnPhone: string, isUpgrade
|
|
43
|
+
installOrUpgradeApplication(bundlePathOnPhone: string, { isUpgrade, timeout }: InstallOrUpgradeOptions): Promise<void>;
|
|
39
44
|
/**
|
|
40
45
|
* Alias for {@linkcode install}
|
|
41
46
|
* @param {string} app
|
|
@@ -89,5 +94,15 @@ export class RealDevice {
|
|
|
89
94
|
reset({ bundleId, fullReset, platformVersion }: import('./driver').XCUITestDriverOpts): Promise<void>;
|
|
90
95
|
}
|
|
91
96
|
export default RealDevice;
|
|
97
|
+
export type InstallOrUpgradeOptions = {
|
|
98
|
+
/**
|
|
99
|
+
* Install/upgrade timeout in milliseconds
|
|
100
|
+
*/
|
|
101
|
+
timeout: number;
|
|
102
|
+
/**
|
|
103
|
+
* Whether it is an app upgrade or a new install
|
|
104
|
+
*/
|
|
105
|
+
isUpgrade: boolean;
|
|
106
|
+
};
|
|
92
107
|
import { Devicectl } from './devicectl';
|
|
93
108
|
//# sourceMappingURL=real-device.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"real-device.d.ts","sourceRoot":"","sources":["../../lib/real-device.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"real-device.d.ts","sourceRoot":"","sources":["../../lib/real-device.js"],"names":[],"mappings":"AAqBA;;GAEG;AACH,uCAFa,QAAQ,MAAM,EAAE,CAAC,CAI7B;AAED;;;;GAIG;AAEH;IACE;;;OAGG;IACH,kBAHW,MAAM,6DAOhB;IAHC,aAAgB;IAChB,2CAAmC;IACnC,qBAAoD;IAGtD;;OAEG;IACH,gDAEC;IAED;;OAEG;IACH,iBAFW,MAAM,iBAShB;IAED;;OAEG;IACH,oBAFW,MAAM,iBAIhB;IAED;;;;;;OAMG;IACH,aALW,MAAM,WACN,MAAM,aACN,YAAY,GAAC,QAAQ,GAAC,UAAU,GAAC,IAAI,iBA0E/C;IAED;;;OAGG;IACH,+CAHW,MAAM,0BACN,uBAAuB,iBAgCjC;IAED;;;;;OAKG;IACH,gBAJW,MAAM,WACN,MAAM,YACN,YAAY,GAAC,QAAQ,GAAC,UAAU,GAAC,IAAI,iBAI/C;IAED;;;;;;;OAOG;IACH,yBAJW,MAAM,GACL,QAAQ,OAAO,CAAC,CAK3B;IAED;;;;;;;;;;;OAWG;IACH,uBARW,MAAM,qBACN,MAAM,GAAC,MAAM,EAAE,GAAC,SAAS,GAIvB,QAAQ,MAAO,SAAS,CAAC,CAgBrC;IAED;;;;OAIG;IACH,uBAJW,MAAM,mBACN,MAAM,GACJ,QAAQ,OAAO,CAAC,CA+D5B;IAED;;;;;OAKG;IACH,kDALW,MAAM,GAEJ,QAAQ,MAAM,EAAE,CAAC,CAsB7B;IAED;;OAEG;IACH,sBAFa,QAAQ,MAAM,CAAC,CAI3B;IAED;;;OAGG;IACH,gDAHW,OAAO,UAAU,EAAE,kBAAkB,GACnC,QAAQ,IAAI,CAAC,CA8BzB;CAEF;;;;;;aAtVa,MAAM;;;;eACN,OAAO;;0BAtBK,aAAa"}
|
package/build/lib/real-device.js
CHANGED
|
@@ -17,7 +17,6 @@ const devicectl_1 = require("./devicectl");
|
|
|
17
17
|
const APPLICATION_INSTALLED_NOTIFICATION = 'com.apple.mobile.application_installed';
|
|
18
18
|
const INSTALLATION_STAGING_DIR = 'PublicStaging';
|
|
19
19
|
const APPLICATION_NOTIFICATION_TIMEOUT_MS = 30 * 1000;
|
|
20
|
-
const IOS_DEPLOY_TIMEOUT_MS = 4 * 60 * 1000;
|
|
21
20
|
const IOS_DEPLOY = 'ios-deploy';
|
|
22
21
|
const APP_INSTALL_STRATEGY = Object.freeze({
|
|
23
22
|
SERIAL: 'serial',
|
|
@@ -31,6 +30,11 @@ async function getConnectedDevices() {
|
|
|
31
30
|
return await appium_ios_device_1.utilities.getConnectedDevices();
|
|
32
31
|
}
|
|
33
32
|
exports.getConnectedDevices = getConnectedDevices;
|
|
33
|
+
/**
|
|
34
|
+
* @typedef {Object} InstallOrUpgradeOptions
|
|
35
|
+
* @property {number} timeout Install/upgrade timeout in milliseconds
|
|
36
|
+
* @property {boolean} isUpgrade Whether it is an app upgrade or a new install
|
|
37
|
+
*/
|
|
34
38
|
class RealDevice {
|
|
35
39
|
/**
|
|
36
40
|
* @param {string} udid
|
|
@@ -68,7 +72,7 @@ class RealDevice {
|
|
|
68
72
|
/**
|
|
69
73
|
*
|
|
70
74
|
* @param {string} app
|
|
71
|
-
* @param {number}
|
|
75
|
+
* @param {number} timeout
|
|
72
76
|
* @param {'ios-deploy'|'serial'|'parallel'|null} strategy
|
|
73
77
|
* @privateRemarks This really needs type guards built out
|
|
74
78
|
*/
|
|
@@ -88,9 +92,7 @@ class RealDevice {
|
|
|
88
92
|
throw new Error(`'${IOS_DEPLOY}' utility has not been found in PATH. Is it installed?`);
|
|
89
93
|
}
|
|
90
94
|
try {
|
|
91
|
-
await (0, teen_process_1.exec)(IOS_DEPLOY, ['--id', this.udid, '--bundle', app], {
|
|
92
|
-
timeout: timeout ?? IOS_DEPLOY_TIMEOUT_MS,
|
|
93
|
-
});
|
|
95
|
+
await (0, teen_process_1.exec)(IOS_DEPLOY, ['--id', this.udid, '--bundle', app], { timeout });
|
|
94
96
|
}
|
|
95
97
|
catch (err) {
|
|
96
98
|
throw new Error(err.stderr || err.stdout || err.message);
|
|
@@ -102,19 +104,26 @@ class RealDevice {
|
|
|
102
104
|
}
|
|
103
105
|
else {
|
|
104
106
|
const afcService = await appium_ios_device_1.services.startAfcService(this.udid);
|
|
107
|
+
const enableParallelPush = lodash_1.default.toLower(/** @type {'parallel'} */ (strategy)) === APP_INSTALL_STRATEGY.PARALLEL;
|
|
105
108
|
try {
|
|
106
109
|
const bundleId = await (0, app_utils_1.extractBundleId)(app);
|
|
107
110
|
const bundlePathOnPhone = path_1.default.join(INSTALLATION_STAGING_DIR, bundleId);
|
|
108
111
|
await (0, ios_fs_helpers_1.pushFolder)(afcService, app, bundlePathOnPhone, {
|
|
112
|
+
enableParallelPush,
|
|
109
113
|
timeoutMs: timeout,
|
|
110
|
-
enableParallelPush: lodash_1.default.toLower(/** @type {'parallel'} */ (strategy)) === APP_INSTALL_STRATEGY.PARALLEL,
|
|
111
114
|
});
|
|
112
|
-
await this.installOrUpgradeApplication(bundlePathOnPhone,
|
|
115
|
+
await this.installOrUpgradeApplication(bundlePathOnPhone, {
|
|
116
|
+
timeout: Math.max(timeout - timer.getDuration().asMilliSeconds, 60000),
|
|
117
|
+
isUpgrade: await this.isAppInstalled(bundleId),
|
|
118
|
+
});
|
|
113
119
|
}
|
|
114
120
|
catch (err) {
|
|
115
121
|
this.log.warn(`Error installing app '${app}': ${err.message}`);
|
|
116
122
|
if (err instanceof bluebird_1.default.TimeoutError) {
|
|
117
|
-
this.log.
|
|
123
|
+
this.log.info(`Consider increasing the value of 'appPushTimeout' capability (the current value equals to ${timeout}ms)`);
|
|
124
|
+
if (!enableParallelPush) {
|
|
125
|
+
this.log.info(`Consider setting the value of 'appInstallStrategy' capability to 'parallel'`);
|
|
126
|
+
}
|
|
118
127
|
}
|
|
119
128
|
this.log.warn(`Falling back to '${IOS_DEPLOY}' usage`);
|
|
120
129
|
try {
|
|
@@ -132,9 +141,9 @@ class RealDevice {
|
|
|
132
141
|
}
|
|
133
142
|
/**
|
|
134
143
|
* @param {string} bundlePathOnPhone
|
|
135
|
-
* @param {
|
|
144
|
+
* @param {InstallOrUpgradeOptions} opts
|
|
136
145
|
*/
|
|
137
|
-
async installOrUpgradeApplication(bundlePathOnPhone, isUpgrade
|
|
146
|
+
async installOrUpgradeApplication(bundlePathOnPhone, { isUpgrade, timeout }) {
|
|
138
147
|
const notificationService = await appium_ios_device_1.services.startNotificationProxyService(this.udid);
|
|
139
148
|
const installationService = await appium_ios_device_1.services.startInstallationProxyService(this.udid);
|
|
140
149
|
const appInstalledNotification = new bluebird_1.default((resolve) => {
|
|
@@ -145,19 +154,19 @@ class RealDevice {
|
|
|
145
154
|
const clientOptions = { PackageType: 'Developer' };
|
|
146
155
|
try {
|
|
147
156
|
if (isUpgrade) {
|
|
148
|
-
this.log.debug(`An upgrade of the existing application is going to be performed`);
|
|
149
|
-
await installationService.upgradeApplication(bundlePathOnPhone, clientOptions);
|
|
157
|
+
this.log.debug(`An upgrade of the existing application is going to be performed. Will timeout in ${timeout} ms`);
|
|
158
|
+
await installationService.upgradeApplication(bundlePathOnPhone, clientOptions, timeout);
|
|
150
159
|
}
|
|
151
160
|
else {
|
|
152
|
-
this.log.debug(`A new application installation is going to be performed`);
|
|
153
|
-
await installationService.installApplication(bundlePathOnPhone, clientOptions);
|
|
161
|
+
this.log.debug(`A new application installation is going to be performed. Will timeout in ${timeout} ms`);
|
|
162
|
+
await installationService.installApplication(bundlePathOnPhone, clientOptions, timeout);
|
|
154
163
|
}
|
|
155
164
|
try {
|
|
156
165
|
await appInstalledNotification.timeout(APPLICATION_NOTIFICATION_TIMEOUT_MS, `Could not get the application installed notification within ` +
|
|
157
166
|
`${APPLICATION_NOTIFICATION_TIMEOUT_MS}ms but we will continue`);
|
|
158
167
|
}
|
|
159
168
|
catch (e) {
|
|
160
|
-
this.log.warn(
|
|
169
|
+
this.log.warn(e.message);
|
|
161
170
|
}
|
|
162
171
|
}
|
|
163
172
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"real-device.js","sourceRoot":"","sources":["../../lib/real-device.js"],"names":[],"mappings":";;;;;;AAAA,4CAAgD;AAChD,gDAAwB;AACxB,yDAA0E;AAC1E,wDAAyB;AACzB,sDAAqC;AACrC,oDAAuB;AACvB,+CAAkC;AAClC,2CAA8D;AAC9D,qDAA4C;AAC5C,2CAAwC;AAExC,MAAM,kCAAkC,GAAG,wCAAwC,CAAC;AACpF,MAAM,wBAAwB,GAAG,eAAe,CAAC;AACjD,MAAM,mCAAmC,GAAG,EAAE,GAAG,IAAI,CAAC;AACtD,MAAM,
|
|
1
|
+
{"version":3,"file":"real-device.js","sourceRoot":"","sources":["../../lib/real-device.js"],"names":[],"mappings":"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"}
|
package/lib/ios-fs-helpers.js
CHANGED
|
@@ -265,7 +265,7 @@ async function pushFolder(afcService, srcRootPath, dstRootPath, opts = {}) {
|
|
|
265
265
|
readStream.on('error', onStreamError);
|
|
266
266
|
});
|
|
267
267
|
readStream.pipe(writeStream);
|
|
268
|
-
await filePushPromise.timeout(timeoutMs);
|
|
268
|
+
await filePushPromise.timeout(Math.max(timeoutMs - timer.getDuration().asMilliSeconds, 60000));
|
|
269
269
|
};
|
|
270
270
|
|
|
271
271
|
if (enableParallelPush) {
|
|
@@ -276,17 +276,25 @@ async function pushFolder(afcService, srcRootPath, dstRootPath, opts = {}) {
|
|
|
276
276
|
// keep the push queue filled
|
|
277
277
|
if (pushPromises.length >= MAX_IO_CHUNK_SIZE) {
|
|
278
278
|
await B.any(pushPromises);
|
|
279
|
+
const elapsedMs = timer.getDuration().asMilliSeconds;
|
|
280
|
+
if (elapsedMs > timeoutMs) {
|
|
281
|
+
throw new B.TimeoutError(`Timed out after ${elapsedMs} ms`);
|
|
282
|
+
}
|
|
279
283
|
}
|
|
280
284
|
_.remove(pushPromises, (p) => p.isFulfilled());
|
|
281
285
|
}
|
|
282
286
|
if (!_.isEmpty(pushPromises)) {
|
|
283
287
|
// handle the rest of push promises
|
|
284
|
-
await B.all(pushPromises);
|
|
288
|
+
await B.all(pushPromises).timeout(Math.max(timeoutMs - timer.getDuration().asMilliSeconds, 60000));
|
|
285
289
|
}
|
|
286
290
|
} else {
|
|
287
291
|
log.debug(`Proceeding to serial files push`);
|
|
288
292
|
for (const relativeFilePath of filesToPush) {
|
|
289
293
|
await pushFile(relativeFilePath);
|
|
294
|
+
const elapsedMs = timer.getDuration().asMilliSeconds;
|
|
295
|
+
if (elapsedMs > timeoutMs) {
|
|
296
|
+
throw new B.TimeoutError(`Timed out after ${elapsedMs} ms`);
|
|
297
|
+
}
|
|
290
298
|
}
|
|
291
299
|
}
|
|
292
300
|
|
|
@@ -2,12 +2,14 @@ import _ from 'lodash';
|
|
|
2
2
|
import {buildSafariPreferences} from './app-utils';
|
|
3
3
|
import {utilities} from 'appium-ios-device';
|
|
4
4
|
|
|
5
|
+
const DEFAULT_APP_INSTALLATION_TIMEOUT_MS = 8 * 60 * 1000;
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
8
|
* @typedef {Object} InstallOptions
|
|
7
9
|
*
|
|
8
10
|
* @property {boolean} [skipUninstall] Whether to skip app uninstall before installing it
|
|
9
11
|
* @property {'serial'|'parallel'|'ios-deploy'} [strategy='serial'] One of possible install strategies ('serial', 'parallel', 'ios-deploy')
|
|
10
|
-
* @property {number} [timeout] App install timeout
|
|
12
|
+
* @property {number} [timeout=480000] App install timeout
|
|
11
13
|
* @property {boolean} [shouldEnforceUninstall] Whether to enforce the app uninstallation. e.g. fullReset, or enforceAppInstall is true
|
|
12
14
|
*/
|
|
13
15
|
|
|
@@ -25,13 +27,17 @@ export async function installToRealDevice(app, bundleId, opts = {}) {
|
|
|
25
27
|
return;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
|
-
const {
|
|
30
|
+
const {
|
|
31
|
+
skipUninstall,
|
|
32
|
+
strategy,
|
|
33
|
+
timeout = DEFAULT_APP_INSTALLATION_TIMEOUT_MS,
|
|
34
|
+
} = opts;
|
|
29
35
|
|
|
30
36
|
if (!skipUninstall) {
|
|
31
37
|
this.log.info(`Reset requested. Removing app with id '${bundleId}' from the device`);
|
|
32
38
|
await device.remove(bundleId);
|
|
33
39
|
}
|
|
34
|
-
this.log.debug(`Installing '${app}' on device with UUID '${device.udid}'...`);
|
|
40
|
+
this.log.debug(`Installing '${app}' on the device with UUID '${device.udid}'...`);
|
|
35
41
|
|
|
36
42
|
try {
|
|
37
43
|
await device.install(app, timeout, strategy);
|
package/lib/real-device.js
CHANGED
|
@@ -12,7 +12,6 @@ import { Devicectl } from './devicectl';
|
|
|
12
12
|
const APPLICATION_INSTALLED_NOTIFICATION = 'com.apple.mobile.application_installed';
|
|
13
13
|
const INSTALLATION_STAGING_DIR = 'PublicStaging';
|
|
14
14
|
const APPLICATION_NOTIFICATION_TIMEOUT_MS = 30 * 1000;
|
|
15
|
-
const IOS_DEPLOY_TIMEOUT_MS = 4 * 60 * 1000;
|
|
16
15
|
const IOS_DEPLOY = 'ios-deploy';
|
|
17
16
|
const APP_INSTALL_STRATEGY = Object.freeze({
|
|
18
17
|
SERIAL: 'serial',
|
|
@@ -27,6 +26,12 @@ export async function getConnectedDevices() {
|
|
|
27
26
|
return await utilities.getConnectedDevices();
|
|
28
27
|
}
|
|
29
28
|
|
|
29
|
+
/**
|
|
30
|
+
* @typedef {Object} InstallOrUpgradeOptions
|
|
31
|
+
* @property {number} timeout Install/upgrade timeout in milliseconds
|
|
32
|
+
* @property {boolean} isUpgrade Whether it is an app upgrade or a new install
|
|
33
|
+
*/
|
|
34
|
+
|
|
30
35
|
export class RealDevice {
|
|
31
36
|
/**
|
|
32
37
|
* @param {string} udid
|
|
@@ -67,7 +72,7 @@ export class RealDevice {
|
|
|
67
72
|
/**
|
|
68
73
|
*
|
|
69
74
|
* @param {string} app
|
|
70
|
-
* @param {number}
|
|
75
|
+
* @param {number} timeout
|
|
71
76
|
* @param {'ios-deploy'|'serial'|'parallel'|null} strategy
|
|
72
77
|
* @privateRemarks This really needs type guards built out
|
|
73
78
|
*/
|
|
@@ -93,9 +98,7 @@ export class RealDevice {
|
|
|
93
98
|
throw new Error(`'${IOS_DEPLOY}' utility has not been found in PATH. Is it installed?`);
|
|
94
99
|
}
|
|
95
100
|
try {
|
|
96
|
-
await exec(IOS_DEPLOY, ['--id', this.udid, '--bundle', app], {
|
|
97
|
-
timeout: timeout ?? IOS_DEPLOY_TIMEOUT_MS,
|
|
98
|
-
});
|
|
101
|
+
await exec(IOS_DEPLOY, ['--id', this.udid, '--bundle', app], {timeout});
|
|
99
102
|
} catch (err) {
|
|
100
103
|
throw new Error(err.stderr || err.stdout || err.message);
|
|
101
104
|
}
|
|
@@ -106,22 +109,30 @@ export class RealDevice {
|
|
|
106
109
|
await installWithIosDeploy();
|
|
107
110
|
} else {
|
|
108
111
|
const afcService = await services.startAfcService(this.udid);
|
|
112
|
+
const enableParallelPush = _.toLower(/** @type {'parallel'} */ (strategy)) === APP_INSTALL_STRATEGY.PARALLEL;
|
|
109
113
|
try {
|
|
110
114
|
const bundleId = await extractBundleId(app);
|
|
111
115
|
const bundlePathOnPhone = path.join(INSTALLATION_STAGING_DIR, bundleId);
|
|
112
116
|
await pushFolder(afcService, app, bundlePathOnPhone, {
|
|
117
|
+
enableParallelPush,
|
|
113
118
|
timeoutMs: timeout,
|
|
114
|
-
enableParallelPush:
|
|
115
|
-
_.toLower(/** @type {'parallel'} */ (strategy)) === APP_INSTALL_STRATEGY.PARALLEL,
|
|
116
119
|
});
|
|
117
120
|
await this.installOrUpgradeApplication(
|
|
118
121
|
bundlePathOnPhone,
|
|
119
|
-
|
|
122
|
+
{
|
|
123
|
+
timeout: Math.max(timeout - timer.getDuration().asMilliSeconds, 60000),
|
|
124
|
+
isUpgrade: await this.isAppInstalled(bundleId),
|
|
125
|
+
}
|
|
120
126
|
);
|
|
121
127
|
} catch (err) {
|
|
122
128
|
this.log.warn(`Error installing app '${app}': ${err.message}`);
|
|
123
129
|
if (err instanceof B.TimeoutError) {
|
|
124
|
-
this.log.
|
|
130
|
+
this.log.info(
|
|
131
|
+
`Consider increasing the value of 'appPushTimeout' capability (the current value equals to ${timeout}ms)`
|
|
132
|
+
);
|
|
133
|
+
if (!enableParallelPush) {
|
|
134
|
+
this.log.info(`Consider setting the value of 'appInstallStrategy' capability to 'parallel'`);
|
|
135
|
+
}
|
|
125
136
|
}
|
|
126
137
|
this.log.warn(`Falling back to '${IOS_DEPLOY}' usage`);
|
|
127
138
|
try {
|
|
@@ -140,9 +151,9 @@ export class RealDevice {
|
|
|
140
151
|
|
|
141
152
|
/**
|
|
142
153
|
* @param {string} bundlePathOnPhone
|
|
143
|
-
* @param {
|
|
154
|
+
* @param {InstallOrUpgradeOptions} opts
|
|
144
155
|
*/
|
|
145
|
-
async installOrUpgradeApplication(bundlePathOnPhone, isUpgrade
|
|
156
|
+
async installOrUpgradeApplication(bundlePathOnPhone, {isUpgrade, timeout}) {
|
|
146
157
|
const notificationService = await services.startNotificationProxyService(this.udid);
|
|
147
158
|
const installationService = await services.startInstallationProxyService(this.udid);
|
|
148
159
|
const appInstalledNotification = new B((resolve) => {
|
|
@@ -153,11 +164,11 @@ export class RealDevice {
|
|
|
153
164
|
const clientOptions = {PackageType: 'Developer'};
|
|
154
165
|
try {
|
|
155
166
|
if (isUpgrade) {
|
|
156
|
-
this.log.debug(`An upgrade of the existing application is going to be performed`);
|
|
157
|
-
await installationService.upgradeApplication(bundlePathOnPhone, clientOptions);
|
|
167
|
+
this.log.debug(`An upgrade of the existing application is going to be performed. Will timeout in ${timeout} ms`);
|
|
168
|
+
await installationService.upgradeApplication(bundlePathOnPhone, clientOptions, timeout);
|
|
158
169
|
} else {
|
|
159
|
-
this.log.debug(`A new application installation is going to be performed`);
|
|
160
|
-
await installationService.installApplication(bundlePathOnPhone, clientOptions);
|
|
170
|
+
this.log.debug(`A new application installation is going to be performed. Will timeout in ${timeout} ms`);
|
|
171
|
+
await installationService.installApplication(bundlePathOnPhone, clientOptions, timeout);
|
|
161
172
|
}
|
|
162
173
|
try {
|
|
163
174
|
await appInstalledNotification.timeout(
|
|
@@ -166,7 +177,7 @@ export class RealDevice {
|
|
|
166
177
|
`${APPLICATION_NOTIFICATION_TIMEOUT_MS}ms but we will continue`,
|
|
167
178
|
);
|
|
168
179
|
} catch (e) {
|
|
169
|
-
this.log.warn(
|
|
180
|
+
this.log.warn(e.message);
|
|
170
181
|
}
|
|
171
182
|
} finally {
|
|
172
183
|
installationService.close();
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-xcuitest-driver",
|
|
3
|
-
"version": "7.11.
|
|
3
|
+
"version": "7.11.3",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "appium-xcuitest-driver",
|
|
9
|
-
"version": "7.11.
|
|
9
|
+
"version": "7.11.3",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@colors/colors": "^1.6.0",
|
|
@@ -181,6 +181,18 @@
|
|
|
181
181
|
"url": "https://github.com/sponsors/sindresorhus"
|
|
182
182
|
}
|
|
183
183
|
},
|
|
184
|
+
"node_modules/@appium/docutils/node_modules/typescript": {
|
|
185
|
+
"version": "5.4.4",
|
|
186
|
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.4.tgz",
|
|
187
|
+
"integrity": "sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==",
|
|
188
|
+
"bin": {
|
|
189
|
+
"tsc": "bin/tsc",
|
|
190
|
+
"tsserver": "bin/tsserver"
|
|
191
|
+
},
|
|
192
|
+
"engines": {
|
|
193
|
+
"node": ">=14.17"
|
|
194
|
+
}
|
|
195
|
+
},
|
|
184
196
|
"node_modules/@appium/schema": {
|
|
185
197
|
"version": "0.5.0",
|
|
186
198
|
"resolved": "https://registry.npmjs.org/@appium/schema/-/schema-0.5.0.tgz",
|
|
@@ -697,9 +709,9 @@
|
|
|
697
709
|
}
|
|
698
710
|
},
|
|
699
711
|
"node_modules/@types/node": {
|
|
700
|
-
"version": "20.12.
|
|
701
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.
|
|
702
|
-
"integrity": "sha512-
|
|
712
|
+
"version": "20.12.7",
|
|
713
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz",
|
|
714
|
+
"integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==",
|
|
703
715
|
"dependencies": {
|
|
704
716
|
"undici-types": "~5.26.4"
|
|
705
717
|
}
|
|
@@ -879,9 +891,9 @@
|
|
|
879
891
|
}
|
|
880
892
|
},
|
|
881
893
|
"node_modules/appium-ios-device": {
|
|
882
|
-
"version": "2.7.
|
|
883
|
-
"resolved": "https://registry.npmjs.org/appium-ios-device/-/appium-ios-device-2.7.
|
|
884
|
-
"integrity": "sha512-
|
|
894
|
+
"version": "2.7.15",
|
|
895
|
+
"resolved": "https://registry.npmjs.org/appium-ios-device/-/appium-ios-device-2.7.15.tgz",
|
|
896
|
+
"integrity": "sha512-XDYPd6A8kMGUYCSLB8NdboidpXNVcMsXrTZqdIjFjAhjeaywDVcvLW5GAR9onVrNWYeQqJLG6rZ4BqF+v6fkBA==",
|
|
885
897
|
"dependencies": {
|
|
886
898
|
"@appium/support": "^4.0.0",
|
|
887
899
|
"asyncbox": "^3.0.0",
|
|
@@ -900,9 +912,9 @@
|
|
|
900
912
|
}
|
|
901
913
|
},
|
|
902
914
|
"node_modules/appium-ios-simulator": {
|
|
903
|
-
"version": "6.1.
|
|
904
|
-
"resolved": "https://registry.npmjs.org/appium-ios-simulator/-/appium-ios-simulator-6.1.
|
|
905
|
-
"integrity": "sha512-
|
|
915
|
+
"version": "6.1.3",
|
|
916
|
+
"resolved": "https://registry.npmjs.org/appium-ios-simulator/-/appium-ios-simulator-6.1.3.tgz",
|
|
917
|
+
"integrity": "sha512-1FXJ4rGI9gE9LN/TYNYCT9+Bd8QxFs6J08WJD7/7xpz3lfAXg367XpBf8zyJBOvlpm/7g/lzFdjHrswPMAXJkw==",
|
|
906
918
|
"dependencies": {
|
|
907
919
|
"@appium/support": "^4.0.0",
|
|
908
920
|
"@xmldom/xmldom": "^0.x",
|
|
@@ -944,9 +956,9 @@
|
|
|
944
956
|
}
|
|
945
957
|
},
|
|
946
958
|
"node_modules/appium-webdriveragent": {
|
|
947
|
-
"version": "8.5.
|
|
948
|
-
"resolved": "https://registry.npmjs.org/appium-webdriveragent/-/appium-webdriveragent-8.5.
|
|
949
|
-
"integrity": "sha512-
|
|
959
|
+
"version": "8.5.2",
|
|
960
|
+
"resolved": "https://registry.npmjs.org/appium-webdriveragent/-/appium-webdriveragent-8.5.2.tgz",
|
|
961
|
+
"integrity": "sha512-v7DfnS9sN4KD6ahAOixGF90ajJUZADYim9mxOSIH2Qs3hX/KHURbHD9khQJp5Kbu0jeIpmaLj+yXpbtAg8c+9g==",
|
|
950
962
|
"dependencies": {
|
|
951
963
|
"@appium/base-driver": "^9.0.0",
|
|
952
964
|
"@appium/strongbox": "^0.x",
|
|
@@ -967,9 +979,9 @@
|
|
|
967
979
|
}
|
|
968
980
|
},
|
|
969
981
|
"node_modules/appium-xcode": {
|
|
970
|
-
"version": "5.2.
|
|
971
|
-
"resolved": "https://registry.npmjs.org/appium-xcode/-/appium-xcode-5.2.
|
|
972
|
-
"integrity": "sha512-
|
|
982
|
+
"version": "5.2.12",
|
|
983
|
+
"resolved": "https://registry.npmjs.org/appium-xcode/-/appium-xcode-5.2.12.tgz",
|
|
984
|
+
"integrity": "sha512-5A0G0zPC5G6/07fbmCVnMWJMRAMqT4oVK75nAVlmccmtwl+YrMP/BsCCCCEPoRCo3kPhGKMXom8VO+aJRNyCLw==",
|
|
973
985
|
"dependencies": {
|
|
974
986
|
"@appium/support": "^4.0.0",
|
|
975
987
|
"@types/lodash": "^4.14.192",
|
|
@@ -2806,9 +2818,9 @@
|
|
|
2806
2818
|
}
|
|
2807
2819
|
},
|
|
2808
2820
|
"node_modules/node-simctl": {
|
|
2809
|
-
"version": "7.4.
|
|
2810
|
-
"resolved": "https://registry.npmjs.org/node-simctl/-/node-simctl-7.4.
|
|
2811
|
-
"integrity": "sha512-
|
|
2821
|
+
"version": "7.4.2",
|
|
2822
|
+
"resolved": "https://registry.npmjs.org/node-simctl/-/node-simctl-7.4.2.tgz",
|
|
2823
|
+
"integrity": "sha512-LZbTJyWFrAA7VmuFjpDWfufSinqLHhMoywywrrZM7XxSiFMxZnFdh91E9dthcprCHN09LU4Flg9S/PwsjBEZQw==",
|
|
2812
2824
|
"dependencies": {
|
|
2813
2825
|
"asyncbox": "^3.0.0",
|
|
2814
2826
|
"bluebird": "^3.5.1",
|
|
@@ -3905,9 +3917,9 @@
|
|
|
3905
3917
|
}
|
|
3906
3918
|
},
|
|
3907
3919
|
"node_modules/typescript": {
|
|
3908
|
-
"version": "5.4.
|
|
3909
|
-
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.
|
|
3910
|
-
"integrity": "sha512-
|
|
3920
|
+
"version": "5.4.5",
|
|
3921
|
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
|
|
3922
|
+
"integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
|
|
3911
3923
|
"bin": {
|
|
3912
3924
|
"tsc": "bin/tsc",
|
|
3913
3925
|
"tsserver": "bin/tsserver"
|