appium-webdriveragent 13.2.2 → 13.2.4

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,15 @@
1
+ ## [13.2.4](https://github.com/appium/WebDriverAgent/compare/v13.2.3...v13.2.4) (2026-06-08)
2
+
3
+ ### Bug Fixes
4
+
5
+ * update WebDriverAgentRunner app icon ([#1151](https://github.com/appium/WebDriverAgent/issues/1151)) ([eea2229](https://github.com/appium/WebDriverAgent/commit/eea2229f8d2e8bd2dd936fe3ddb69a9458789f49))
6
+
7
+ ## [13.2.3](https://github.com/appium/WebDriverAgent/compare/v13.2.2...v13.2.3) (2026-06-07)
8
+
9
+ ### Bug Fixes
10
+
11
+ * auto-handle iOS 18+ limited access permission prompt ([#1150](https://github.com/appium/WebDriverAgent/issues/1150)) ([98d79e7](https://github.com/appium/WebDriverAgent/commit/98d79e7c3875424cb4b5fdee55bb079286a14b05))
12
+
1
13
  ## [13.2.2](https://github.com/appium/WebDriverAgent/compare/v13.2.1...v13.2.2) (2026-06-06)
2
14
 
3
15
  ### Miscellaneous Chores
@@ -8,6 +8,8 @@
8
8
 
9
9
  #import <XCTest/XCTest.h>
10
10
 
11
+ NS_ASSUME_NONNULL_BEGIN
12
+
11
13
  @interface XCUIApplication (FBAlert)
12
14
 
13
15
  /* The accessiblity label used for Safari app */
@@ -18,6 +20,16 @@ extern NSString *const FB_SAFARI_APP_NAME;
18
20
 
19
21
  @return Alert element instance
20
22
  */
21
- - (XCUIElement *)fb_alertElement;
23
+ - (nullable XCUIElement *)fb_alertElement;
24
+
25
+ /**
26
+ Retrieve an alert element hosted by the iOS 18+ limited access permission prompt
27
+ process. See https://github.com/appium/appium/issues/20591
28
+
29
+ @return Alert element instance if the prompt is present, otherwise nil
30
+ */
31
+ + (nullable XCUIElement *)fb_limitedAccessPromptAlertElement;
22
32
 
23
33
  @end
34
+
35
+ NS_ASSUME_NONNULL_END
@@ -17,9 +17,22 @@
17
17
 
18
18
  NSString *const FB_SAFARI_APP_NAME = @"Safari";
19
19
 
20
+ // The iOS 18+ limited access permission prompt (e.g. the "Select Contacts" view)
21
+ // runs in a dedicated process that is not reported by fb_activeApplications.
22
+ static NSString *const FB_LIMITED_ACCESS_PROMPT_BUNDLE_ID = @"com.apple.ContactsUI.LimitedAccessPromptView";
23
+
20
24
 
21
25
  @implementation XCUIApplication (FBAlert)
22
26
 
27
+ + (nullable XCUIElement *)fb_limitedAccessPromptAlertElement
28
+ {
29
+ XCUIApplication *promptApp = [[XCUIApplication alloc] initWithBundleIdentifier:FB_LIMITED_ACCESS_PROMPT_BUNDLE_ID];
30
+ if (promptApp.state < XCUIApplicationStateRunningForeground) {
31
+ return nil;
32
+ }
33
+ return promptApp.fb_alertElement;
34
+ }
35
+
23
36
  - (nullable XCUIElement *)fb_alertElementFromSafariWithScrollView:(XCUIElement *)scrollView
24
37
  viewSnapshot:(id<FBXCElementSnapshot>)viewSnapshot
25
38
  {
@@ -267,6 +267,9 @@
267
267
  } else {
268
268
  self.element = systemApp.fb_alertElement ?: self.application.fb_alertElement;
269
269
  }
270
+ if (nil == self.element) {
271
+ self.element = [XCUIApplication fb_limitedAccessPromptAlertElement];
272
+ }
270
273
  }
271
274
  return self.element;
272
275
  }
@@ -15,11 +15,11 @@
15
15
  <key>CFBundlePackageType</key>
16
16
  <string>FMWK</string>
17
17
  <key>CFBundleShortVersionString</key>
18
- <string>13.2.2</string>
18
+ <string>13.2.4</string>
19
19
  <key>CFBundleSignature</key>
20
20
  <string>????</string>
21
21
  <key>CFBundleVersion</key>
22
- <string>13.2.2</string>
22
+ <string>13.2.4</string>
23
23
  <key>NSPrincipalClass</key>
24
24
  <string/>
25
25
  </dict>
@@ -48,22 +48,36 @@ static const NSTimeInterval FB_MONTORING_INTERVAL = 2.0;
48
48
  }
49
49
 
50
50
  dispatch_async(dispatch_get_main_queue(), ^{
51
+ id<FBAlertsMonitorDelegate> delegate = self.delegate;
51
52
  NSArray<XCUIApplication *> *activeApps = XCUIApplication.fb_activeApplications;
53
+ BOOL didDetectAlert = NO;
52
54
  for (XCUIApplication *activeApp in activeApps) {
53
55
  XCUIElement *alertElement = nil;
54
56
  @try {
55
57
  alertElement = activeApp.fb_alertElement;
56
58
  if (nil != alertElement) {
57
- [self.delegate didDetectAlert:[FBAlert alertWithElement:alertElement]];
59
+ [delegate didDetectAlert:[FBAlert alertWithElement:alertElement]];
58
60
  }
59
61
  } @catch (NSException *e) {
60
62
  [FBLogger logFmt:@"Got an unexpected exception while monitoring alerts: %@\n%@", e.reason, e.callStackSymbols];
61
63
  }
62
64
  if (nil != alertElement) {
65
+ didDetectAlert = YES;
63
66
  break;
64
67
  }
65
68
  }
66
69
 
70
+ if (!didDetectAlert) {
71
+ @try {
72
+ XCUIElement *alertElement = [XCUIApplication fb_limitedAccessPromptAlertElement];
73
+ if (nil != alertElement) {
74
+ [delegate didDetectAlert:[FBAlert alertWithElement:alertElement]];
75
+ }
76
+ } @catch (NSException *e) {
77
+ [FBLogger logFmt:@"Got an unexpected exception while monitoring alerts: %@\n%@", e.reason, e.callStackSymbols];
78
+ }
79
+ }
80
+
67
81
  if (self.isMonitoring) {
68
82
  dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delta), dispatch_get_main_queue(), ^{
69
83
  [self scheduleNextTick];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appium-webdriveragent",
3
- "version": "13.2.2",
3
+ "version": "13.2.4",
4
4
  "description": "Package bundling WebDriverAgent",
5
5
  "main": "./build/lib/index.js",
6
6
  "types": "./build/lib/index.d.ts",