appium-webdriveragent 16.12.7 → 16.12.9
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 +12 -0
- package/WebDriverAgentLib/Categories/XCUIElement+FBScrolling.m +5 -13
- package/WebDriverAgentLib/Info.plist +2 -2
- package/WebDriverAgentLib/Utilities/FBMathUtils.h +25 -0
- package/WebDriverAgentLib/Utilities/FBMathUtils.m +21 -0
- package/WebDriverAgentTests/UnitTests/FBMathUtilsTests.m +38 -0
- package/build/lib/xcodebuild.d.ts +11 -0
- package/build/lib/xcodebuild.d.ts.map +1 -1
- package/build/lib/xcodebuild.js +47 -3
- package/build/lib/xcodebuild.js.map +1 -1
- package/lib/xcodebuild.ts +51 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [16.12.9](https://github.com/appium/WebDriverAgent/compare/v16.12.8...v16.12.9) (2026-09-19)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* resolve real device udid to xcodebuild's own case before building '-destination id=' ([#1260](https://github.com/appium/WebDriverAgent/issues/1260)) ([c220f4d](https://github.com/appium/WebDriverAgent/commit/c220f4d92a70761e0fe1df936740cc04d9bafdc4))
|
|
6
|
+
|
|
7
|
+
## [16.12.8](https://github.com/appium/WebDriverAgent/compare/v16.12.7...v16.12.8) (2026-09-11)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* use wdFrame instead of raw frame for scroll gesture anchor ([#1256](https://github.com/appium/WebDriverAgent/issues/1256)) ([9ada9fd](https://github.com/appium/WebDriverAgent/commit/9ada9fd4077796b7c1002292c21ec9e45fab4d89))
|
|
12
|
+
|
|
1
13
|
## [16.12.7](https://github.com/appium/WebDriverAgent/compare/v16.12.6...v16.12.7) (2026-09-10)
|
|
2
14
|
|
|
3
15
|
### Bug Fixes
|
|
@@ -374,26 +374,18 @@ static XCUIElement *FBLiveElementForSnapshot(id<FBXCElementSnapshot> snapshot, X
|
|
|
374
374
|
error:(NSError **)error
|
|
375
375
|
{
|
|
376
376
|
CGRect scrollingFrame = self.scrollingFrame;
|
|
377
|
-
|
|
377
|
+
// wdFrame matches scrollingFrame's coordinate space; raw .frame can be pre-scaled or
|
|
378
|
+
// dimension-swapped and drift out of sync with it (appium/appium#16185).
|
|
379
|
+
CGRect anchorFrame = anchorElement.wdFrame;
|
|
378
380
|
if (CGRectIsEmpty(scrollingFrame) || CGRectIsEmpty(anchorFrame)) {
|
|
379
381
|
return [[[FBErrorBuilder builder]
|
|
380
382
|
withDescriptionFormat:@"Cannot compute a scroll gesture for '%@': its frame is empty", self.fb_description]
|
|
381
383
|
buildError:error];
|
|
382
384
|
}
|
|
383
385
|
|
|
384
|
-
// Compute the touch-down/up points within the (possibly clipped) scrolling frame as
|
|
385
|
-
// before, then express them as fractions of the anchor element's own frame instead of
|
|
386
|
-
// raw points, which XCTest never rescales for compatibility-mode windows
|
|
387
|
-
// (appium/appium#16185). When scrollingFrame == anchorFrame this resolves to the exact
|
|
388
|
-
// same absolute point as before; it only differs once XCTest itself rescales anchorFrame.
|
|
389
386
|
CGVector proportion = [self fb_normalizedHitPointOffsetForScrollingVector:vector];
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
CGPoint endPoint = CGPointMake((CGFloat)floor(startPoint.x + vector.dx), (CGFloat)floor(startPoint.y + vector.dy));
|
|
393
|
-
CGVector startOffset = CGVectorMake((startPoint.x - anchorFrame.origin.x) / anchorFrame.size.width,
|
|
394
|
-
(startPoint.y - anchorFrame.origin.y) / anchorFrame.size.height);
|
|
395
|
-
CGVector endOffset = CGVectorMake((endPoint.x - anchorFrame.origin.x) / anchorFrame.size.width,
|
|
396
|
-
(endPoint.y - anchorFrame.origin.y) / anchorFrame.size.height);
|
|
387
|
+
CGVector startOffset, endOffset;
|
|
388
|
+
FBScrollGestureOffsets(scrollingFrame, anchorFrame, proportion, vector, &startOffset, &endOffset);
|
|
397
389
|
XCUICoordinate *startCoordinate = [anchorElement coordinateWithNormalizedOffset:startOffset];
|
|
398
390
|
XCUICoordinate *endCoordinate = [anchorElement coordinateWithNormalizedOffset:endOffset];
|
|
399
391
|
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
<key>CFBundlePackageType</key>
|
|
16
16
|
<string>FMWK</string>
|
|
17
17
|
<key>CFBundleShortVersionString</key>
|
|
18
|
-
<string>16.12.
|
|
18
|
+
<string>16.12.9</string>
|
|
19
19
|
<key>CFBundleSignature</key>
|
|
20
20
|
<string>????</string>
|
|
21
21
|
<key>CFBundleVersion</key>
|
|
22
|
-
<string>16.12.
|
|
22
|
+
<string>16.12.9</string>
|
|
23
23
|
<key>NSPrincipalClass</key>
|
|
24
24
|
<string/>
|
|
25
25
|
</dict>
|
|
@@ -61,4 +61,29 @@ XCUICoordinate * _Nullable FBCoordinateWithAnchorOffset(XCUIElement *element,
|
|
|
61
61
|
NSError **error);
|
|
62
62
|
#endif
|
|
63
63
|
|
|
64
|
+
/*!
|
|
65
|
+
Computes the normalized (0.0-1.0) start/end offsets of a scroll drag gesture whose
|
|
66
|
+
touch-down/up points fall within scrollingFrame, expressed relative to anchorFrame -
|
|
67
|
+
the coordinate space the resulting offsets get resolved against (e.g. via
|
|
68
|
+
-[XCUIElement coordinateWithNormalizedOffset:]). scrollingFrame and anchorFrame are
|
|
69
|
+
usually the same rect, but scrollingFrame may be clipped to a visible sub-region, and/or
|
|
70
|
+
the two may come from frame sources XCTest doesn't keep in sync (see appium/appium#16185)
|
|
71
|
+
- passing mismatched frames here reproduces that bug rather than fixing it.
|
|
72
|
+
|
|
73
|
+
@param scrollingFrame the (possibly clipped) frame to compute the touch-down/up points within
|
|
74
|
+
@param anchorFrame the frame startOffset/endOffset get normalized against
|
|
75
|
+
@param proportion normalized touch-down position within scrollingFrame, e.g. from
|
|
76
|
+
-fb_normalizedHitPointOffsetForScrollingVector:
|
|
77
|
+
@param vector the scroll vector, in scrollingFrame's coordinate space
|
|
78
|
+
@param startOffset populated with the normalized start offset; untouched if NO is returned
|
|
79
|
+
@param endOffset populated with the normalized end offset; untouched if NO is returned
|
|
80
|
+
@return NO if either frame is empty
|
|
81
|
+
*/
|
|
82
|
+
BOOL FBScrollGestureOffsets(CGRect scrollingFrame,
|
|
83
|
+
CGRect anchorFrame,
|
|
84
|
+
CGVector proportion,
|
|
85
|
+
CGVector vector,
|
|
86
|
+
CGVector *startOffset,
|
|
87
|
+
CGVector *endOffset);
|
|
88
|
+
|
|
64
89
|
NS_ASSUME_NONNULL_END
|
|
@@ -86,3 +86,24 @@ XCUICoordinate *FBCoordinateWithAnchorOffset(XCUIElement *element,
|
|
|
86
86
|
return [element coordinateWithNormalizedOffset:normalizedOffset];
|
|
87
87
|
}
|
|
88
88
|
#endif
|
|
89
|
+
|
|
90
|
+
BOOL FBScrollGestureOffsets(CGRect scrollingFrame,
|
|
91
|
+
CGRect anchorFrame,
|
|
92
|
+
CGVector proportion,
|
|
93
|
+
CGVector vector,
|
|
94
|
+
CGVector *startOffset,
|
|
95
|
+
CGVector *endOffset)
|
|
96
|
+
{
|
|
97
|
+
if (CGRectIsEmpty(scrollingFrame) || CGRectIsEmpty(anchorFrame)) {
|
|
98
|
+
return NO;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
CGPoint startPoint = CGPointMake((CGFloat)floor(scrollingFrame.origin.x + scrollingFrame.size.width * proportion.dx),
|
|
102
|
+
(CGFloat)floor(scrollingFrame.origin.y + scrollingFrame.size.height * proportion.dy));
|
|
103
|
+
CGPoint endPoint = CGPointMake((CGFloat)floor(startPoint.x + vector.dx), (CGFloat)floor(startPoint.y + vector.dy));
|
|
104
|
+
*startOffset = CGVectorMake((startPoint.x - anchorFrame.origin.x) / anchorFrame.size.width,
|
|
105
|
+
(startPoint.y - anchorFrame.origin.y) / anchorFrame.size.height);
|
|
106
|
+
*endOffset = CGVectorMake((endPoint.x - anchorFrame.origin.x) / anchorFrame.size.width,
|
|
107
|
+
(endPoint.y - anchorFrame.origin.y) / anchorFrame.size.height);
|
|
108
|
+
return YES;
|
|
109
|
+
}
|
|
@@ -110,4 +110,42 @@
|
|
|
110
110
|
XCTAssertTrue(FBSizeFuzzyEqualToSize(screenSizeLandscape, FBAdjustDimensionsForApplication(screenSizeLandscape, UIInterfaceOrientationLandscapeRight), t));
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
+
- (void)testScrollGestureOffsetsWithMatchingFrames
|
|
114
|
+
{
|
|
115
|
+
CGRect frame = CGRectMake(20, 200, 300, 400);
|
|
116
|
+
CGVector proportion = CGVectorMake(0.5, 0.75);
|
|
117
|
+
CGVector vector = CGVectorMake(0, -200);
|
|
118
|
+
CGVector startOffset, endOffset;
|
|
119
|
+
XCTAssertTrue(FBScrollGestureOffsets(frame, frame, proportion, vector, &startOffset, &endOffset));
|
|
120
|
+
XCTAssertTrue(FBVectorFuzzyEqualToVector(startOffset, CGVectorMake(0.5, 0.75), 0.01));
|
|
121
|
+
XCTAssertTrue(FBVectorFuzzyEqualToVector(endOffset, CGVectorMake(0.5, 0.25), 0.01));
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
- (void)testScrollGestureOffsetsWithRescaledAnchorFrame
|
|
125
|
+
{
|
|
126
|
+
// Simulates a compatibility-mode window: anchorFrame is scrollingFrame scaled by ~2.19x,
|
|
127
|
+
// same origin - offsets should still land within [0, 1] instead of drifting outside it.
|
|
128
|
+
CGRect scrollingFrame = CGRectMake(20, 202, 335, 420);
|
|
129
|
+
CGRect anchorFrame = CGRectMake(20, 202, 733, 920);
|
|
130
|
+
CGVector proportion = CGVectorMake(0.5, 0.75);
|
|
131
|
+
CGVector vector = CGVectorMake(0, -250);
|
|
132
|
+
CGVector startOffset, endOffset;
|
|
133
|
+
XCTAssertTrue(FBScrollGestureOffsets(scrollingFrame, anchorFrame, proportion, vector, &startOffset, &endOffset));
|
|
134
|
+
XCTAssertTrue(startOffset.dx >= 0 && startOffset.dx <= 1);
|
|
135
|
+
XCTAssertTrue(startOffset.dy >= 0 && startOffset.dy <= 1);
|
|
136
|
+
XCTAssertTrue(endOffset.dx >= 0 && endOffset.dx <= 1);
|
|
137
|
+
XCTAssertTrue(endOffset.dy >= 0 && endOffset.dy <= 1);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
- (void)testScrollGestureOffsetsWithEmptyFrame
|
|
141
|
+
{
|
|
142
|
+
CGVector startOffset = CGVectorMake(-1, -1);
|
|
143
|
+
CGVector endOffset = CGVectorMake(-1, -1);
|
|
144
|
+
XCTAssertFalse(FBScrollGestureOffsets(CGRectZero, CGRectMake(0, 0, 100, 100), CGVectorMake(0.5, 0.5), CGVectorMake(0, -50), &startOffset, &endOffset));
|
|
145
|
+
XCTAssertFalse(FBScrollGestureOffsets(CGRectMake(0, 0, 100, 100), CGRectZero, CGVectorMake(0.5, 0.5), CGVectorMake(0, -50), &startOffset, &endOffset));
|
|
146
|
+
// Untouched on failure
|
|
147
|
+
XCTAssertTrue(startOffset.dx == -1 && startOffset.dy == -1);
|
|
148
|
+
XCTAssertTrue(endOffset.dx == -1 && endOffset.dy == -1);
|
|
149
|
+
}
|
|
150
|
+
|
|
113
151
|
@end
|
|
@@ -5,6 +5,7 @@ export declare class XcodeBuild {
|
|
|
5
5
|
readonly device: AppleDevice;
|
|
6
6
|
readonly realDevice: boolean;
|
|
7
7
|
readonly agentPath: string;
|
|
8
|
+
private _xcodeDeviceUdidPromise?;
|
|
8
9
|
readonly bootstrapPath: string;
|
|
9
10
|
readonly platformVersion?: string;
|
|
10
11
|
readonly platformName?: string;
|
|
@@ -81,6 +82,16 @@ export declare class XcodeBuild {
|
|
|
81
82
|
*/
|
|
82
83
|
quit(): Promise<void>;
|
|
83
84
|
private fetchBuildSettings;
|
|
85
|
+
/**
|
|
86
|
+
* Best-effort resolves this real device's udid to the case xcodebuild's own
|
|
87
|
+
* `-showdestinations` listing reports it in, so the `-destination id=` argument this class
|
|
88
|
+
* builds does not depend on whatever case the caller happened to pass in — different Apple
|
|
89
|
+
* tooling doesn't agree on udid letter case. Falls back to `device.udid` unchanged on any
|
|
90
|
+
* failure, timeout, or when no destination matches. A no-op for simulators, whose udid is
|
|
91
|
+
* already canonical by construction.
|
|
92
|
+
*/
|
|
93
|
+
private resolveXcodeDeviceUdid;
|
|
94
|
+
private fetchXcodeDeviceUdid;
|
|
84
95
|
private getCommand;
|
|
85
96
|
private createSubProcess;
|
|
86
97
|
private waitForStart;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xcodebuild.d.ts","sourceRoot":"","sources":["../../lib/xcodebuild.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAM9D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,4BAA4B,EAC5B,cAAc,EACd,kBAAkB,EAEnB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"xcodebuild.d.ts","sourceRoot":"","sources":["../../lib/xcodebuild.ts"],"names":[],"mappings":"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"}
|
package/build/lib/xcodebuild.js
CHANGED
|
@@ -7,6 +7,9 @@ import { log as defaultLogger } from './logger.js';
|
|
|
7
7
|
import { getPlatformSchemeSuffix, getWDAUpgradeTimestamp, isTvOS, isWatchOS, setRealDeviceSecurity, setXctestrunFile, } from './utils/index.js';
|
|
8
8
|
const DEFAULT_SIGNING_ID = 'iPhone Developer';
|
|
9
9
|
const PREBUILD_DELAY = 0;
|
|
10
|
+
// Bounds the best-effort udid case lookup so a hung 'xcodebuild -showdestinations' cannot stall
|
|
11
|
+
// session startup past wdaLaunchTimeout, which does not cover this step.
|
|
12
|
+
const XCODE_DEVICE_UDID_RESOLUTION_TIMEOUT_MS = 15000;
|
|
10
13
|
const ERROR_WRITING_ATTACHMENT = 'Error writing attachment data to file';
|
|
11
14
|
const ERROR_COPYING_ATTACHMENT = 'Error copying testing attachment';
|
|
12
15
|
const IGNORED_ERRORS = [ERROR_WRITING_ATTACHMENT, ERROR_COPYING_ATTACHMENT, 'Failed to remove screenshot at path'];
|
|
@@ -17,6 +20,7 @@ export class XcodeBuild {
|
|
|
17
20
|
device;
|
|
18
21
|
realDevice;
|
|
19
22
|
agentPath;
|
|
23
|
+
_xcodeDeviceUdidPromise;
|
|
20
24
|
bootstrapPath;
|
|
21
25
|
platformVersion;
|
|
22
26
|
platformName;
|
|
@@ -94,6 +98,8 @@ export class XcodeBuild {
|
|
|
94
98
|
async init(noSessionProxy) {
|
|
95
99
|
this.noSessionProxy = noSessionProxy;
|
|
96
100
|
if (this.useXctestrunFile) {
|
|
101
|
+
// Keep the caller's udid casing: the canonical case is only for '-destination id=';
|
|
102
|
+
// switching it here would orphan an existing .xctestrun file on case-sensitive filesystems.
|
|
97
103
|
const deviceInfo = {
|
|
98
104
|
isRealDevice: !!this.realDevice,
|
|
99
105
|
udid: this.device.udid,
|
|
@@ -296,7 +302,44 @@ export class XcodeBuild {
|
|
|
296
302
|
}
|
|
297
303
|
return entry.buildSettings;
|
|
298
304
|
}
|
|
299
|
-
|
|
305
|
+
/**
|
|
306
|
+
* Best-effort resolves this real device's udid to the case xcodebuild's own
|
|
307
|
+
* `-showdestinations` listing reports it in, so the `-destination id=` argument this class
|
|
308
|
+
* builds does not depend on whatever case the caller happened to pass in — different Apple
|
|
309
|
+
* tooling doesn't agree on udid letter case. Falls back to `device.udid` unchanged on any
|
|
310
|
+
* failure, timeout, or when no destination matches. A no-op for simulators, whose udid is
|
|
311
|
+
* already canonical by construction.
|
|
312
|
+
*/
|
|
313
|
+
resolveXcodeDeviceUdid() {
|
|
314
|
+
if (!this.realDevice) {
|
|
315
|
+
return Promise.resolve(this.device.udid);
|
|
316
|
+
}
|
|
317
|
+
// Cache the in-flight promise itself (not just a "did we start" flag), so concurrent callers
|
|
318
|
+
// await the same resolution instead of one of them racing ahead with a value that isn't
|
|
319
|
+
// resolved yet.
|
|
320
|
+
if (!this._xcodeDeviceUdidPromise) {
|
|
321
|
+
this._xcodeDeviceUdidPromise = this.fetchXcodeDeviceUdid();
|
|
322
|
+
}
|
|
323
|
+
return this._xcodeDeviceUdidPromise;
|
|
324
|
+
}
|
|
325
|
+
async fetchXcodeDeviceUdid() {
|
|
326
|
+
const runnerScheme = `WebDriverAgentRunner${getPlatformSchemeSuffix(this.platformName || '')}`;
|
|
327
|
+
let stdout;
|
|
328
|
+
try {
|
|
329
|
+
({ stdout } = await exec('xcodebuild', ['-showdestinations', '-project', this.agentPath, '-scheme', runnerScheme], {
|
|
330
|
+
timeout: XCODE_DEVICE_UDID_RESOLUTION_TIMEOUT_MS,
|
|
331
|
+
}));
|
|
332
|
+
}
|
|
333
|
+
catch (err) {
|
|
334
|
+
this.log.debug(`Cannot list xcodebuild destinations to resolve the canonical udid case for '${this.device.udid}'. ` +
|
|
335
|
+
`Will use it as is. Original error: ${err.message}`);
|
|
336
|
+
return this.device.udid;
|
|
337
|
+
}
|
|
338
|
+
const udid = this.device.udid.toLowerCase();
|
|
339
|
+
const match = [...stdout.matchAll(/\bid:([0-9A-Fa-f-]+)/g)].find(([, id]) => id.toLowerCase() === udid);
|
|
340
|
+
return match?.[1] ?? this.device.udid;
|
|
341
|
+
}
|
|
342
|
+
getCommand(buildOnly, resolvedUdid) {
|
|
300
343
|
const cmd = 'xcodebuild';
|
|
301
344
|
const args = [];
|
|
302
345
|
// figure out the targets for xcodebuild
|
|
@@ -332,7 +375,7 @@ export class XcodeBuild {
|
|
|
332
375
|
args.push('-derivedDataPath', this.derivedDataPath);
|
|
333
376
|
}
|
|
334
377
|
}
|
|
335
|
-
args.push('-destination', `id=${
|
|
378
|
+
args.push('-destination', `id=${resolvedUdid}`);
|
|
336
379
|
const versionMatch = this.platformVersion ? new RegExp(/^(\d+)\.(\d+)/).exec(this.platformVersion) : null;
|
|
337
380
|
if (versionMatch) {
|
|
338
381
|
const deploymentTargetPrefix = getDeploymentTargetPrefix(this.platformName || '');
|
|
@@ -370,7 +413,8 @@ export class XcodeBuild {
|
|
|
370
413
|
if (!this.useXctestrunFile && this.realDevice && this.keychainPath && this.keychainPassword) {
|
|
371
414
|
await setRealDeviceSecurity(this.keychainPath, this.keychainPassword);
|
|
372
415
|
}
|
|
373
|
-
const
|
|
416
|
+
const resolvedUdid = await this.resolveXcodeDeviceUdid();
|
|
417
|
+
const { cmd, args } = this.getCommand(buildOnly, resolvedUdid);
|
|
374
418
|
this.log.debug(`Beginning ${buildOnly ? 'build' : 'test'} with command '${cmd} ${args.join(' ')}' ` +
|
|
375
419
|
`in directory '${this.bootstrapPath}'`);
|
|
376
420
|
const env = Object.assign({}, process.env, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xcodebuild.js","sourceRoot":"","sources":["../../lib/xcodebuild.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xcodebuild.js","sourceRoot":"","sources":["../../lib/xcodebuild.ts"],"names":[],"mappings":"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"}
|
package/lib/xcodebuild.ts
CHANGED
|
@@ -26,6 +26,9 @@ import {
|
|
|
26
26
|
|
|
27
27
|
const DEFAULT_SIGNING_ID = 'iPhone Developer';
|
|
28
28
|
const PREBUILD_DELAY = 0;
|
|
29
|
+
// Bounds the best-effort udid case lookup so a hung 'xcodebuild -showdestinations' cannot stall
|
|
30
|
+
// session startup past wdaLaunchTimeout, which does not cover this step.
|
|
31
|
+
const XCODE_DEVICE_UDID_RESOLUTION_TIMEOUT_MS = 15000;
|
|
29
32
|
|
|
30
33
|
const ERROR_WRITING_ATTACHMENT = 'Error writing attachment data to file';
|
|
31
34
|
const ERROR_COPYING_ATTACHMENT = 'Error copying testing attachment';
|
|
@@ -43,6 +46,7 @@ export class XcodeBuild {
|
|
|
43
46
|
readonly device: AppleDevice;
|
|
44
47
|
readonly realDevice: boolean;
|
|
45
48
|
readonly agentPath: string;
|
|
49
|
+
private _xcodeDeviceUdidPromise?: Promise<string>;
|
|
46
50
|
readonly bootstrapPath: string;
|
|
47
51
|
readonly platformVersion?: string;
|
|
48
52
|
readonly platformName?: string;
|
|
@@ -138,6 +142,8 @@ export class XcodeBuild {
|
|
|
138
142
|
this.noSessionProxy = noSessionProxy;
|
|
139
143
|
|
|
140
144
|
if (this.useXctestrunFile) {
|
|
145
|
+
// Keep the caller's udid casing: the canonical case is only for '-destination id=';
|
|
146
|
+
// switching it here would orphan an existing .xctestrun file on case-sensitive filesystems.
|
|
141
147
|
const deviceInfo = {
|
|
142
148
|
isRealDevice: !!this.realDevice,
|
|
143
149
|
udid: this.device.udid,
|
|
@@ -358,7 +364,48 @@ export class XcodeBuild {
|
|
|
358
364
|
return entry.buildSettings;
|
|
359
365
|
}
|
|
360
366
|
|
|
361
|
-
|
|
367
|
+
/**
|
|
368
|
+
* Best-effort resolves this real device's udid to the case xcodebuild's own
|
|
369
|
+
* `-showdestinations` listing reports it in, so the `-destination id=` argument this class
|
|
370
|
+
* builds does not depend on whatever case the caller happened to pass in — different Apple
|
|
371
|
+
* tooling doesn't agree on udid letter case. Falls back to `device.udid` unchanged on any
|
|
372
|
+
* failure, timeout, or when no destination matches. A no-op for simulators, whose udid is
|
|
373
|
+
* already canonical by construction.
|
|
374
|
+
*/
|
|
375
|
+
private resolveXcodeDeviceUdid(): Promise<string> {
|
|
376
|
+
if (!this.realDevice) {
|
|
377
|
+
return Promise.resolve(this.device.udid);
|
|
378
|
+
}
|
|
379
|
+
// Cache the in-flight promise itself (not just a "did we start" flag), so concurrent callers
|
|
380
|
+
// await the same resolution instead of one of them racing ahead with a value that isn't
|
|
381
|
+
// resolved yet.
|
|
382
|
+
if (!this._xcodeDeviceUdidPromise) {
|
|
383
|
+
this._xcodeDeviceUdidPromise = this.fetchXcodeDeviceUdid();
|
|
384
|
+
}
|
|
385
|
+
return this._xcodeDeviceUdidPromise;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
private async fetchXcodeDeviceUdid(): Promise<string> {
|
|
389
|
+
const runnerScheme = `WebDriverAgentRunner${getPlatformSchemeSuffix(this.platformName || '')}`;
|
|
390
|
+
let stdout: string;
|
|
391
|
+
try {
|
|
392
|
+
({stdout} = await exec('xcodebuild', ['-showdestinations', '-project', this.agentPath, '-scheme', runnerScheme], {
|
|
393
|
+
timeout: XCODE_DEVICE_UDID_RESOLUTION_TIMEOUT_MS,
|
|
394
|
+
}));
|
|
395
|
+
} catch (err: any) {
|
|
396
|
+
this.log.debug(
|
|
397
|
+
`Cannot list xcodebuild destinations to resolve the canonical udid case for '${this.device.udid}'. ` +
|
|
398
|
+
`Will use it as is. Original error: ${err.message}`,
|
|
399
|
+
);
|
|
400
|
+
return this.device.udid;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
const udid = this.device.udid.toLowerCase();
|
|
404
|
+
const match = [...stdout.matchAll(/\bid:([0-9A-Fa-f-]+)/g)].find(([, id]) => id.toLowerCase() === udid);
|
|
405
|
+
return match?.[1] ?? this.device.udid;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
private getCommand(buildOnly: boolean, resolvedUdid: string): {cmd: string; args: string[]} {
|
|
362
409
|
const cmd = 'xcodebuild';
|
|
363
410
|
const args: string[] = [];
|
|
364
411
|
|
|
@@ -396,7 +443,7 @@ export class XcodeBuild {
|
|
|
396
443
|
args.push('-derivedDataPath', this.derivedDataPath);
|
|
397
444
|
}
|
|
398
445
|
}
|
|
399
|
-
args.push('-destination', `id=${
|
|
446
|
+
args.push('-destination', `id=${resolvedUdid}`);
|
|
400
447
|
|
|
401
448
|
const versionMatch = this.platformVersion ? new RegExp(/^(\d+)\.(\d+)/).exec(this.platformVersion) : null;
|
|
402
449
|
if (versionMatch) {
|
|
@@ -443,7 +490,8 @@ export class XcodeBuild {
|
|
|
443
490
|
await setRealDeviceSecurity(this.keychainPath, this.keychainPassword);
|
|
444
491
|
}
|
|
445
492
|
|
|
446
|
-
const
|
|
493
|
+
const resolvedUdid = await this.resolveXcodeDeviceUdid();
|
|
494
|
+
const {cmd, args} = this.getCommand(buildOnly, resolvedUdid);
|
|
447
495
|
this.log.debug(
|
|
448
496
|
`Beginning ${buildOnly ? 'build' : 'test'} with command '${cmd} ${args.join(' ')}' ` +
|
|
449
497
|
`in directory '${this.bootstrapPath}'`,
|