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 +12 -0
- package/WebDriverAgentLib/Categories/XCUIApplication+FBAlert.h +13 -1
- package/WebDriverAgentLib/Categories/XCUIApplication+FBAlert.m +13 -0
- package/WebDriverAgentLib/FBAlert.m +3 -0
- package/WebDriverAgentLib/Info.plist +2 -2
- package/WebDriverAgentLib/Utilities/FBAlertsMonitor.m +15 -1
- package/WebDriverAgentRunner/Assets.xcassets/AppIcon.appiconset/icon-1024.png +0 -0
- package/package.json +1 -1
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
|
{
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
<key>CFBundlePackageType</key>
|
|
16
16
|
<string>FMWK</string>
|
|
17
17
|
<key>CFBundleShortVersionString</key>
|
|
18
|
-
<string>13.2.
|
|
18
|
+
<string>13.2.4</string>
|
|
19
19
|
<key>CFBundleSignature</key>
|
|
20
20
|
<string>????</string>
|
|
21
21
|
<key>CFBundleVersion</key>
|
|
22
|
-
<string>13.2.
|
|
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
|
-
[
|
|
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];
|
|
Binary file
|