appium-xcuitest-driver 11.4.0 → 11.4.1

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 CHANGED
@@ -1,3 +1,9 @@
1
+ ## [11.4.1](https://github.com/appium/appium-xcuitest-driver/compare/v11.4.0...v11.4.1) (2026-05-15)
2
+
3
+ ### Bug Fixes
4
+
5
+ * prevent ECONNRESET by removing redundant RSD connections in AfcClient ([#2840](https://github.com/appium/appium-xcuitest-driver/issues/2840)) ([9ce708b](https://github.com/appium/appium-xcuitest-driver/commit/9ce708b768d1a2d88fec930ac01755637590e7a2))
6
+
1
7
  ## [11.4.0](https://github.com/appium/appium-xcuitest-driver/compare/v11.3.1...v11.4.0) (2026-05-13)
2
8
 
3
9
  ### Features
@@ -23,7 +23,7 @@ export interface CreateForAppOptions {
23
23
  */
24
24
  export declare class AfcClient {
25
25
  private readonly service;
26
- private readonly remoteXPCConnection?;
26
+ private readonly _isRemoteXPC;
27
27
  private constructor();
28
28
  /**
29
29
  * Check if this client is using RemoteXPC
@@ -55,12 +55,6 @@ export declare class AfcClient {
55
55
  * @returns AFC client instance
56
56
  */
57
57
  static createForApp(udid: string, bundleId: string, useRemoteXPC: boolean, options?: CreateForAppOptions): Promise<AfcClient>;
58
- /**
59
- * Helper to safely execute remoteXPC operations with connection cleanup
60
- * @param operation - Async operation that returns an AfcClient
61
- * @returns AfcClient on success, null on failure
62
- */
63
- private static withRemoteXpcConnection;
64
58
  /**
65
59
  * Check if a path is a directory
66
60
  */
@@ -99,7 +93,7 @@ export declare class AfcClient {
99
93
  */
100
94
  pull(remotePath: string, localPath: string, options?: AfcPullOptions): Promise<void>;
101
95
  /**
102
- * Close the AFC service connection and remoteXPC connection if present
96
+ * Close the AFC service connection
103
97
  */
104
98
  close(): Promise<void>;
105
99
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"afc-client.d.ts","sourceRoot":"","sources":["../../../lib/device/afc-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAa1C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1F;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAcD;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IACpE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAsB;IAE3D,OAAO;IAQP;;OAEG;IACH,OAAO,KAAK,WAAW,GAEtB;IAED;;OAEG;IACH,OAAO,KAAK,mBAAmB,GAE9B;IAED;;OAEG;IACH,OAAO,KAAK,mBAAmB,GAE9B;IAED;;;;;;OAMG;WACU,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;IAoBrF;;;;;;;;OAQG;WACU,YAAY,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,OAAO,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,SAAS,CAAC;IAgCrB;;;;OAIG;mBACkB,uBAAuB;IA4B5C;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQjD;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOpD;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBpD;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhE;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BpE;;;;;;;OAOG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9F;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;YACW,gBAAgB;IAW9B;;;OAGG;YACW,eAAe;IAuD7B,wEAAwE;YAC1D,qBAAqB;IAkBnC,6EAA6E;YAC/D,4BAA4B;IAkB1C;;;OAGG;IACH,OAAO,CAAC,2BAA2B;YAerB,uBAAuB;IAsCrC;;;OAGG;YACW,+BAA+B;IAqC7C;;;;;;OAMG;YACW,cAAc;IAM5B;;;;;;OAMG;YACW,cAAc;IAS5B;;OAEG;YACW,gBAAgB;CAQ/B"}
1
+ {"version":3,"file":"afc-client.d.ts","sourceRoot":"","sources":["../../../lib/device/afc-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAa1C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1F;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAcD;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,OAAO;IAQP;;OAEG;IACH,OAAO,KAAK,WAAW,GAEtB;IAED;;OAEG;IACH,OAAO,KAAK,mBAAmB,GAE9B;IAED;;OAEG;IACH,OAAO,KAAK,mBAAmB,GAE9B;IAED;;;;;;OAMG;WACU,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;IAwBrF;;;;;;;;OAQG;WACU,YAAY,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,OAAO,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,SAAS,CAAC;IA0CrB;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQjD;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOpD;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBpD;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhE;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BpE;;;;;;;OAOG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9F;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;YACW,gBAAgB;IAW9B;;;OAGG;YACW,eAAe;IAuD7B,wEAAwE;YAC1D,qBAAqB;IAkBnC,6EAA6E;YAC/D,4BAA4B;IAkB1C;;;OAGG;IACH,OAAO,CAAC,2BAA2B;YAerB,uBAAuB;IAsCrC;;;OAGG;YACW,+BAA+B;IAqC7C;;;;;;OAMG;YACW,cAAc;IAM5B;;;;;;OAMG;YACW,cAAc;IAS5B;;OAEG;YACW,gBAAgB;CAQ/B"}
@@ -22,16 +22,16 @@ const utils_1 = require("../utils");
22
22
  */
23
23
  class AfcClient {
24
24
  service;
25
- remoteXPCConnection;
26
- constructor(service, remoteXPCConnection) {
25
+ _isRemoteXPC;
26
+ constructor(service, isRemoteXPC = false) {
27
27
  this.service = service;
28
- this.remoteXPCConnection = remoteXPCConnection;
28
+ this._isRemoteXPC = isRemoteXPC;
29
29
  }
30
30
  /**
31
31
  * Check if this client is using RemoteXPC
32
32
  */
33
33
  get isRemoteXPC() {
34
- return !!this.remoteXPCConnection;
34
+ return this._isRemoteXPC;
35
35
  }
36
36
  /**
37
37
  * Get service as RemoteXPC AFC service
@@ -54,17 +54,20 @@ class AfcClient {
54
54
  */
55
55
  static async createForDevice(udid, useRemoteXPC) {
56
56
  if (useRemoteXPC) {
57
- const client = await AfcClient.withRemoteXpcConnection(async () => {
57
+ // Best-practice pattern (matches go-ios `defer rsd.Close()` and
58
+ // pymobiledevice3 single-RSD-per-session): perform exactly one RSD
59
+ // probe via `startAfcService`, which discovers the AFC port, closes
60
+ // its discovery RSD eagerly, and returns a self-contained AfcService
61
+ // bound to its own per-service TCP socket. Opening an extra RSD here
62
+ // would only race with the one inside `startAfcService` and trigger
63
+ // an ECONNRESET from the on-device `remoted` daemon.
64
+ try {
58
65
  const Services = await (0, remotexpc_utils_1.getRemoteXPCServices)();
59
- const connectionResult = await Services.createRemoteXPCConnection(udid);
60
66
  const afcService = await Services.startAfcService(udid);
61
- return {
62
- service: afcService,
63
- connection: connectionResult.remoteXPC,
64
- };
65
- });
66
- if (client) {
67
- return client;
67
+ return new AfcClient(afcService, true);
68
+ }
69
+ catch (err) {
70
+ logger_1.log.error(`Failed to create AFC client via RemoteXPC: ${err.message}, falling back to appium-ios-device`);
68
71
  }
69
72
  }
70
73
  const afcService = await appium_ios_device_1.services.startAfcService(udid);
@@ -83,22 +86,34 @@ class AfcClient {
83
86
  const { containerType = null, skipDocumentsCheck = false } = options ?? {};
84
87
  const isDocuments = !skipDocumentsCheck && containerType?.toLowerCase() === 'documents';
85
88
  if (useRemoteXPC) {
86
- const client = await AfcClient.withRemoteXpcConnection(async () => {
89
+ // Best-practice pattern (matches go-ios `defer rsd.Close()`): one RSD
90
+ // probe via `startHouseArrestService`, vend the AFC service, then
91
+ // release the discovery RSD eagerly. The vended AfcService has its
92
+ // own dedicated socket so it does not need the discovery RSD to
93
+ // remain open. Avoids the prior pattern of overlapping RSD probes
94
+ // that triggered ECONNRESETs from the on-device `remoted` daemon.
95
+ let houseArrestRemoteXPC;
96
+ try {
87
97
  const Services = await (0, remotexpc_utils_1.getRemoteXPCServices)();
88
- const connectionResult = await Services.createRemoteXPCConnection(udid);
89
- const { houseArrestService, remoteXPC: houseArrestRemoteXPC } = await Services.startHouseArrestService(udid);
98
+ const result = await Services.startHouseArrestService(udid);
99
+ houseArrestRemoteXPC = result.remoteXPC;
90
100
  const afcService = isDocuments
91
- ? await houseArrestService.vendDocuments(bundleId)
92
- : await houseArrestService.vendContainer(bundleId);
93
- // Use the remoteXPC from house arrest service if available, otherwise use the one from connection
94
- const connection = houseArrestRemoteXPC ?? connectionResult.remoteXPC;
95
- return {
96
- service: afcService,
97
- connection,
98
- };
99
- });
100
- if (client) {
101
- return client;
101
+ ? await result.houseArrestService.vendDocuments(bundleId)
102
+ : await result.houseArrestService.vendContainer(bundleId);
103
+ return new AfcClient(afcService, true);
104
+ }
105
+ catch (err) {
106
+ logger_1.log.error(`Failed to create AFC client via RemoteXPC: ${err.message}, falling back to appium-ios-device`);
107
+ }
108
+ finally {
109
+ if (houseArrestRemoteXPC) {
110
+ try {
111
+ await houseArrestRemoteXPC.close();
112
+ }
113
+ catch {
114
+ // ignore cleanup errors
115
+ }
116
+ }
102
117
  }
103
118
  }
104
119
  const houseArrestService = await appium_ios_device_1.services.startHouseArrestService(udid);
@@ -107,37 +122,6 @@ class AfcClient {
107
122
  : await houseArrestService.vendContainer(bundleId);
108
123
  return new AfcClient(afcService);
109
124
  }
110
- /**
111
- * Helper to safely execute remoteXPC operations with connection cleanup
112
- * @param operation - Async operation that returns an AfcClient
113
- * @returns AfcClient on success, null on failure
114
- */
115
- static async withRemoteXpcConnection(operation) {
116
- let remoteXPCConnection;
117
- let succeeded = false;
118
- try {
119
- const { service, connection } = await operation();
120
- remoteXPCConnection = connection;
121
- const client = new AfcClient(service, remoteXPCConnection);
122
- succeeded = true;
123
- return client;
124
- }
125
- catch (err) {
126
- logger_1.log.error(`Failed to create AFC client via RemoteXPC: ${err.message}, falling back to appium-ios-device`);
127
- return null;
128
- }
129
- finally {
130
- // Only close connection if we failed (if succeeded, the client owns it)
131
- if (remoteXPCConnection && !succeeded) {
132
- try {
133
- await remoteXPCConnection.close();
134
- }
135
- catch {
136
- // Ignore cleanup errors
137
- }
138
- }
139
- }
140
- }
141
125
  /**
142
126
  * Check if a path is a directory
143
127
  */
@@ -259,16 +243,10 @@ class AfcClient {
259
243
  }
260
244
  }
261
245
  /**
262
- * Close the AFC service connection and remoteXPC connection if present
246
+ * Close the AFC service connection
263
247
  */
264
248
  async close() {
265
249
  this.service.close();
266
- if (this.remoteXPCConnection) {
267
- try {
268
- await this.remoteXPCConnection.close();
269
- }
270
- catch { }
271
- }
272
250
  }
273
251
  /**
274
252
  * Create a read stream for a file (internal use only).
@@ -1 +1 @@
1
- {"version":3,"file":"afc-client.js","sourceRoot":"","sources":["../../../lib/device/afc-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"afc-client.js","sourceRoot":"","sources":["../../../lib/device/afc-client.ts"],"names":[],"mappings":"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"}
@@ -49,21 +49,21 @@ interface WalkDirPullWalkContext {
49
49
  */
50
50
  export class AfcClient {
51
51
  private readonly service: RemoteXPCAfcService | IOSDeviceAfcService;
52
- private readonly remoteXPCConnection?: RemoteXpcConnection;
52
+ private readonly _isRemoteXPC: boolean;
53
53
 
54
54
  private constructor(
55
55
  service: RemoteXPCAfcService | IOSDeviceAfcService,
56
- remoteXPCConnection?: RemoteXpcConnection,
56
+ isRemoteXPC: boolean = false,
57
57
  ) {
58
58
  this.service = service;
59
- this.remoteXPCConnection = remoteXPCConnection;
59
+ this._isRemoteXPC = isRemoteXPC;
60
60
  }
61
61
 
62
62
  /**
63
63
  * Check if this client is using RemoteXPC
64
64
  */
65
65
  private get isRemoteXPC(): boolean {
66
- return !!this.remoteXPCConnection;
66
+ return this._isRemoteXPC;
67
67
  }
68
68
 
69
69
  /**
@@ -89,17 +89,21 @@ export class AfcClient {
89
89
  */
90
90
  static async createForDevice(udid: string, useRemoteXPC: boolean): Promise<AfcClient> {
91
91
  if (useRemoteXPC) {
92
- const client = await AfcClient.withRemoteXpcConnection(async () => {
92
+ // Best-practice pattern (matches go-ios `defer rsd.Close()` and
93
+ // pymobiledevice3 single-RSD-per-session): perform exactly one RSD
94
+ // probe via `startAfcService`, which discovers the AFC port, closes
95
+ // its discovery RSD eagerly, and returns a self-contained AfcService
96
+ // bound to its own per-service TCP socket. Opening an extra RSD here
97
+ // would only race with the one inside `startAfcService` and trigger
98
+ // an ECONNRESET from the on-device `remoted` daemon.
99
+ try {
93
100
  const Services = await getRemoteXPCServices();
94
- const connectionResult = await Services.createRemoteXPCConnection(udid);
95
101
  const afcService = await Services.startAfcService(udid);
96
- return {
97
- service: afcService,
98
- connection: connectionResult.remoteXPC,
99
- };
100
- });
101
- if (client) {
102
- return client;
102
+ return new AfcClient(afcService, true);
103
+ } catch (err: any) {
104
+ log.error(
105
+ `Failed to create AFC client via RemoteXPC: ${err.message}, falling back to appium-ios-device`,
106
+ );
103
107
  }
104
108
  }
105
109
 
@@ -126,23 +130,33 @@ export class AfcClient {
126
130
  const isDocuments = !skipDocumentsCheck && containerType?.toLowerCase() === 'documents';
127
131
 
128
132
  if (useRemoteXPC) {
129
- const client = await AfcClient.withRemoteXpcConnection(async () => {
133
+ // Best-practice pattern (matches go-ios `defer rsd.Close()`): one RSD
134
+ // probe via `startHouseArrestService`, vend the AFC service, then
135
+ // release the discovery RSD eagerly. The vended AfcService has its
136
+ // own dedicated socket so it does not need the discovery RSD to
137
+ // remain open. Avoids the prior pattern of overlapping RSD probes
138
+ // that triggered ECONNRESETs from the on-device `remoted` daemon.
139
+ let houseArrestRemoteXPC: RemoteXpcConnection | undefined;
140
+ try {
130
141
  const Services = await getRemoteXPCServices();
131
- const connectionResult = await Services.createRemoteXPCConnection(udid);
132
- const {houseArrestService, remoteXPC: houseArrestRemoteXPC} =
133
- await Services.startHouseArrestService(udid);
142
+ const result = await Services.startHouseArrestService(udid);
143
+ houseArrestRemoteXPC = result.remoteXPC;
134
144
  const afcService = isDocuments
135
- ? await houseArrestService.vendDocuments(bundleId)
136
- : await houseArrestService.vendContainer(bundleId);
137
- // Use the remoteXPC from house arrest service if available, otherwise use the one from connection
138
- const connection = houseArrestRemoteXPC ?? connectionResult.remoteXPC;
139
- return {
140
- service: afcService,
141
- connection,
142
- };
143
- });
144
- if (client) {
145
- return client;
145
+ ? await result.houseArrestService.vendDocuments(bundleId)
146
+ : await result.houseArrestService.vendContainer(bundleId);
147
+ return new AfcClient(afcService, true);
148
+ } catch (err: any) {
149
+ log.error(
150
+ `Failed to create AFC client via RemoteXPC: ${err.message}, falling back to appium-ios-device`,
151
+ );
152
+ } finally {
153
+ if (houseArrestRemoteXPC) {
154
+ try {
155
+ await houseArrestRemoteXPC.close();
156
+ } catch {
157
+ // ignore cleanup errors
158
+ }
159
+ }
146
160
  }
147
161
  }
148
162
 
@@ -153,39 +167,6 @@ export class AfcClient {
153
167
  return new AfcClient(afcService);
154
168
  }
155
169
 
156
- /**
157
- * Helper to safely execute remoteXPC operations with connection cleanup
158
- * @param operation - Async operation that returns an AfcClient
159
- * @returns AfcClient on success, null on failure
160
- */
161
- private static async withRemoteXpcConnection<T extends RemoteXPCAfcService | IOSDeviceAfcService>(
162
- operation: () => Promise<{service: T; connection: RemoteXpcConnection}>,
163
- ): Promise<AfcClient | null> {
164
- let remoteXPCConnection: RemoteXpcConnection | undefined;
165
- let succeeded = false;
166
- try {
167
- const {service, connection} = await operation();
168
- remoteXPCConnection = connection;
169
- const client = new AfcClient(service, remoteXPCConnection);
170
- succeeded = true;
171
- return client;
172
- } catch (err: any) {
173
- log.error(
174
- `Failed to create AFC client via RemoteXPC: ${err.message}, falling back to appium-ios-device`,
175
- );
176
- return null;
177
- } finally {
178
- // Only close connection if we failed (if succeeded, the client owns it)
179
- if (remoteXPCConnection && !succeeded) {
180
- try {
181
- await remoteXPCConnection.close();
182
- } catch {
183
- // Ignore cleanup errors
184
- }
185
- }
186
- }
187
- }
188
-
189
170
  /**
190
171
  * Check if a path is a directory
191
172
  */
@@ -316,15 +297,10 @@ export class AfcClient {
316
297
  }
317
298
 
318
299
  /**
319
- * Close the AFC service connection and remoteXPC connection if present
300
+ * Close the AFC service connection
320
301
  */
321
302
  async close(): Promise<void> {
322
303
  this.service.close();
323
- if (this.remoteXPCConnection) {
324
- try {
325
- await this.remoteXPCConnection.close();
326
- } catch {}
327
- }
328
304
  }
329
305
 
330
306
  /**
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "appium-xcuitest-driver",
3
- "version": "11.4.0",
3
+ "version": "11.4.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "appium-xcuitest-driver",
9
- "version": "11.4.0",
9
+ "version": "11.4.1",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "@appium/strongbox": "^1.0.0-rc.1",
@@ -65,7 +65,7 @@
65
65
  "npm": ">=10"
66
66
  },
67
67
  "optionalDependencies": {
68
- "appium-ios-remotexpc": "^1.1.8"
68
+ "appium-ios-remotexpc": "^1.1.10"
69
69
  },
70
70
  "peerDependencies": {
71
71
  "appium": "^3.0.0-rc.2"
@@ -117,6 +117,17 @@
117
117
  "npm": ">=10"
118
118
  }
119
119
  },
120
+ "node_modules/@appium/base-driver/node_modules/axios": {
121
+ "version": "1.16.0",
122
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz",
123
+ "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==",
124
+ "license": "MIT",
125
+ "dependencies": {
126
+ "follow-redirects": "^1.16.0",
127
+ "form-data": "^4.0.5",
128
+ "proxy-from-env": "^2.1.0"
129
+ }
130
+ },
120
131
  "node_modules/@appium/base-driver/node_modules/lru-cache": {
121
132
  "version": "11.3.5",
122
133
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz",
@@ -266,6 +277,17 @@
266
277
  "npm": ">=10"
267
278
  }
268
279
  },
280
+ "node_modules/@appium/support/node_modules/axios": {
281
+ "version": "1.16.0",
282
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz",
283
+ "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==",
284
+ "license": "MIT",
285
+ "dependencies": {
286
+ "follow-redirects": "^1.16.0",
287
+ "form-data": "^4.0.5",
288
+ "proxy-from-env": "^2.1.0"
289
+ }
290
+ },
269
291
  "node_modules/@appium/support/node_modules/semver": {
270
292
  "version": "7.7.4",
271
293
  "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
@@ -564,6 +586,18 @@
564
586
  "node": ">= 0.6"
565
587
  }
566
588
  },
589
+ "node_modules/agent-base": {
590
+ "version": "6.0.2",
591
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
592
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
593
+ "license": "MIT",
594
+ "dependencies": {
595
+ "debug": "4"
596
+ },
597
+ "engines": {
598
+ "node": ">= 6.0.0"
599
+ }
600
+ },
567
601
  "node_modules/ansi-regex": {
568
602
  "version": "6.2.2",
569
603
  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
@@ -608,9 +642,9 @@
608
642
  }
609
643
  },
610
644
  "node_modules/appium-ios-remotexpc": {
611
- "version": "1.1.8",
612
- "resolved": "https://registry.npmjs.org/appium-ios-remotexpc/-/appium-ios-remotexpc-1.1.8.tgz",
613
- "integrity": "sha512-62j5AqfjgPtZ+7H893z0X/6+LroncahjqvfJsFXafCzy5VLVIqL5OsrMWc1L8babedIuFFX42zHzLkPyiGt4uA==",
645
+ "version": "1.1.10",
646
+ "resolved": "https://registry.npmjs.org/appium-ios-remotexpc/-/appium-ios-remotexpc-1.1.10.tgz",
647
+ "integrity": "sha512-qkfJoVTsBkMfGg+yaGfZDj11nhg6pF4MORf9+FvBvs63l7DsFseRYLGk2Jp1pZevb8vBaKeeePsh7RuF23NaXg==",
614
648
  "license": "Apache-2.0",
615
649
  "optional": true,
616
650
  "dependencies": {
@@ -652,9 +686,9 @@
652
686
  }
653
687
  },
654
688
  "node_modules/appium-ios-tuntap": {
655
- "version": "0.2.3",
656
- "resolved": "https://registry.npmjs.org/appium-ios-tuntap/-/appium-ios-tuntap-0.2.3.tgz",
657
- "integrity": "sha512-rt8sZi66IeOSXyEclMsC+uSA1sO11PMAldztHPC1ipLkSwrahasvILy9AZ9wnPOzcCZ84TOQF3bpz8S4luJ4yA==",
689
+ "version": "0.2.5",
690
+ "resolved": "https://registry.npmjs.org/appium-ios-tuntap/-/appium-ios-tuntap-0.2.5.tgz",
691
+ "integrity": "sha512-rWk2fGKlc4CWBgB/MjSiU2Ily2gj1NJ6WLUcelp0irzwGrkoebOqTD9lmxuUCCpXhYBJMGR9CPtmlJvo+zTfRQ==",
658
692
  "hasInstallScript": true,
659
693
  "license": "Apache-2.0",
660
694
  "optional": true,
@@ -876,13 +910,14 @@
876
910
  "license": "MIT"
877
911
  },
878
912
  "node_modules/axios": {
879
- "version": "1.16.0",
880
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz",
881
- "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==",
913
+ "version": "1.16.1",
914
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.1.tgz",
915
+ "integrity": "sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==",
882
916
  "license": "MIT",
883
917
  "dependencies": {
884
918
  "follow-redirects": "^1.16.0",
885
919
  "form-data": "^4.0.5",
920
+ "https-proxy-agent": "^5.0.1",
886
921
  "proxy-from-env": "^2.1.0"
887
922
  }
888
923
  },
@@ -910,9 +945,9 @@
910
945
  }
911
946
  },
912
947
  "node_modules/bare-events": {
913
- "version": "2.8.2",
914
- "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz",
915
- "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==",
948
+ "version": "2.8.3",
949
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.3.tgz",
950
+ "integrity": "sha512-HdUm8EMQBLaJvGUdidNNbqpA1kYkwNcb+MYxkxCLAPJGQzlv9J0C24h8V65Z4c5GLd/JEALDvpFCQgpLJqc0zw==",
916
951
  "license": "Apache-2.0",
917
952
  "peerDependencies": {
918
953
  "bare-abort-controller": "*"
@@ -2241,6 +2276,19 @@
2241
2276
  "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==",
2242
2277
  "license": "MIT"
2243
2278
  },
2279
+ "node_modules/https-proxy-agent": {
2280
+ "version": "5.0.1",
2281
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
2282
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
2283
+ "license": "MIT",
2284
+ "dependencies": {
2285
+ "agent-base": "6",
2286
+ "debug": "4"
2287
+ },
2288
+ "engines": {
2289
+ "node": ">= 6"
2290
+ }
2291
+ },
2244
2292
  "node_modules/iconv-lite": {
2245
2293
  "version": "0.7.2",
2246
2294
  "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
@@ -4122,17 +4170,34 @@
4122
4170
  }
4123
4171
  },
4124
4172
  "node_modules/type-is": {
4125
- "version": "2.0.1",
4126
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz",
4127
- "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==",
4173
+ "version": "2.1.0",
4174
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz",
4175
+ "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==",
4128
4176
  "license": "MIT",
4129
4177
  "dependencies": {
4130
- "content-type": "^1.0.5",
4178
+ "content-type": "^2.0.0",
4131
4179
  "media-typer": "^1.1.0",
4132
4180
  "mime-types": "^3.0.0"
4133
4181
  },
4134
4182
  "engines": {
4135
- "node": ">= 0.6"
4183
+ "node": ">= 18"
4184
+ },
4185
+ "funding": {
4186
+ "type": "opencollective",
4187
+ "url": "https://opencollective.com/express"
4188
+ }
4189
+ },
4190
+ "node_modules/type-is/node_modules/content-type": {
4191
+ "version": "2.0.0",
4192
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz",
4193
+ "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==",
4194
+ "license": "MIT",
4195
+ "engines": {
4196
+ "node": ">=18"
4197
+ },
4198
+ "funding": {
4199
+ "type": "opencollective",
4200
+ "url": "https://opencollective.com/express"
4136
4201
  }
4137
4202
  },
4138
4203
  "node_modules/typescript": {
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "xcuitest",
9
9
  "xctest"
10
10
  ],
11
- "version": "11.4.0",
11
+ "version": "11.4.1",
12
12
  "author": "Appium Contributors",
13
13
  "license": "Apache-2.0",
14
14
  "repository": {
@@ -108,7 +108,7 @@
108
108
  "ws": "^8.13.0"
109
109
  },
110
110
  "optionalDependencies": {
111
- "appium-ios-remotexpc": "^1.1.8"
111
+ "appium-ios-remotexpc": "^1.1.10"
112
112
  },
113
113
  "scripts": {
114
114
  "build": "tsc -b",