appium-webdriveragent 14.1.0 → 14.1.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 +6 -0
- package/WebDriverAgentLib/Categories/XCUIDevice+FBHelpers.h +3 -3
- package/WebDriverAgentLib/Categories/XCUIDevice+FBHelpers.m +1 -1
- package/WebDriverAgentLib/Categories/XCUIDevice+FBVoiceOver.h +6 -6
- package/WebDriverAgentLib/Categories/XCUIDevice+FBVoiceOver.m +1 -1
- package/WebDriverAgentLib/Info.plist +2 -2
- package/WebDriverAgentLib/Utilities/FBCapabilities.h +1 -1
- package/WebDriverAgentLib/Utilities/FBXCTestDaemonsProxy.m +7 -7
- package/WebDriverAgentTests/IntegrationTests/FBVoiceOverTests.m +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## [14.1.1](https://github.com/appium/WebDriverAgent/compare/v14.1.0...v14.1.1) (2026-06-10)
|
|
2
|
+
|
|
3
|
+
### Miscellaneous Chores
|
|
4
|
+
|
|
5
|
+
* address runtime version rather than Xcode for selector based methods ([#1154](https://github.com/appium/WebDriverAgent/issues/1154)) ([6618b0b](https://github.com/appium/WebDriverAgent/commit/6618b0b6ccd06c69fc9e4a0947ef0c88c89b1e48))
|
|
6
|
+
|
|
1
7
|
## [14.1.0](https://github.com/appium/WebDriverAgent/compare/v14.0.0...v14.1.0) (2026-06-10)
|
|
2
8
|
|
|
3
9
|
### Features
|
|
@@ -169,7 +169,7 @@ typedef NS_ENUM(NSUInteger, FBUIInterfaceAppearance) {
|
|
|
169
169
|
#if !TARGET_OS_TV
|
|
170
170
|
/**
|
|
171
171
|
Allows to set a simulated geolocation coordinates.
|
|
172
|
-
Only works since
|
|
172
|
+
Only works since iOS 16.4 runtime
|
|
173
173
|
|
|
174
174
|
@param location The simlated location coordinates to set
|
|
175
175
|
@param error If there is an error, upon return contains an NSError object that describes the problem.
|
|
@@ -179,7 +179,7 @@ typedef NS_ENUM(NSUInteger, FBUIInterfaceAppearance) {
|
|
|
179
179
|
|
|
180
180
|
/**
|
|
181
181
|
Allows to get a simulated geolocation coordinates.
|
|
182
|
-
Only works since
|
|
182
|
+
Only works since iOS 16.4 runtime
|
|
183
183
|
|
|
184
184
|
@param error If there is an error, upon return contains an NSError object that describes the problem.
|
|
185
185
|
@return The current simulated location or nil in case of failure or if no location has previously been seet
|
|
@@ -189,7 +189,7 @@ typedef NS_ENUM(NSUInteger, FBUIInterfaceAppearance) {
|
|
|
189
189
|
|
|
190
190
|
/**
|
|
191
191
|
Allows to clear a previosuly set simulated geolocation coordinates.
|
|
192
|
-
Only works since
|
|
192
|
+
Only works since iOS 16.4 runtime
|
|
193
193
|
|
|
194
194
|
@param error If there is an error, upon return contains an NSError object that describes the problem.
|
|
195
195
|
@return YES if the simulated location has been successfully cleared
|
|
@@ -229,7 +229,7 @@ static bool fb_isLocked;
|
|
|
229
229
|
return [self fb_activateSiriVoiceRecognitionWithText:[NSString stringWithFormat:@"Open {%@}", url] error:error];
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
-
NSString *description = [NSString stringWithFormat:@"Cannot open '%@' with the default application assigned for it.
|
|
232
|
+
NSString *description = [NSString stringWithFormat:@"Cannot open '%@' with the default application assigned for it. This API requires an iOS 16.4+ runtime", url];
|
|
233
233
|
return [[[FBErrorBuilder builder]
|
|
234
234
|
withDescriptionFormat:@"%@", description]
|
|
235
235
|
buildError:error];
|
|
@@ -13,14 +13,14 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
13
13
|
@interface XCUIDevice (FBVoiceOver)
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
Whether VoiceOver control APIs are available in the current
|
|
16
|
+
Whether VoiceOver control APIs are available in the current OS runtime.
|
|
17
17
|
|
|
18
18
|
@return YES if the VoiceOver service is exposed by XCUIDevice
|
|
19
19
|
*/
|
|
20
20
|
- (BOOL)fb_isVoiceOverServiceAvailable;
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
Enable VoiceOver. Only works since
|
|
23
|
+
Enable VoiceOver. Only works since iOS 27 runtime.
|
|
24
24
|
|
|
25
25
|
@param error If there is an error, upon return contains an NSError object that describes the problem.
|
|
26
26
|
@return YES if VoiceOver has been successfully enabled
|
|
@@ -28,7 +28,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
28
28
|
- (BOOL)fb_enableVoiceOver:(NSError **)error;
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
|
-
Disable VoiceOver. Only works since
|
|
31
|
+
Disable VoiceOver. Only works since iOS 27 runtime.
|
|
32
32
|
|
|
33
33
|
@param error If there is an error, upon return contains an NSError object that describes the problem.
|
|
34
34
|
@return YES if VoiceOver has been successfully disabled
|
|
@@ -36,7 +36,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
36
36
|
- (BOOL)fb_disableVoiceOver:(NSError **)error;
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
|
-
Whether VoiceOver is currently enabled. Only works since
|
|
39
|
+
Whether VoiceOver is currently enabled. Only works since iOS 27 runtime.
|
|
40
40
|
|
|
41
41
|
@param error If there is an error, upon return contains an NSError object that describes the problem.
|
|
42
42
|
@return YES if VoiceOver is enabled
|
|
@@ -45,7 +45,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
Move VoiceOver focus and return speech for the newly focused element.
|
|
48
|
-
Only works since
|
|
48
|
+
Only works since iOS 27 runtime.
|
|
49
49
|
|
|
50
50
|
@param direction One of: forward, backward, in (iOS only), out (iOS only)
|
|
51
51
|
@param error If there is an error, upon return contains an NSError object that describes the problem.
|
|
@@ -54,7 +54,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
54
54
|
- (nullable NSString *)fb_voiceOverMove:(NSString *)direction error:(NSError **)error;
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
|
-
Return the speech for the currently focused element. Only works since
|
|
57
|
+
Return the speech for the currently focused element. Only works since iOS 27 runtime.
|
|
58
58
|
|
|
59
59
|
@param error If there is an error, upon return contains an NSError object that describes the problem.
|
|
60
60
|
@return The spoken utterance or nil in case of failure
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
#import "FBErrorBuilder.h"
|
|
12
12
|
|
|
13
13
|
static NSString *const FBVoiceOverSDKUnsupportedError =
|
|
14
|
-
@"The current
|
|
14
|
+
@"The current OS runtime does not support VoiceOver control. This API requires an iOS 27+ runtime";
|
|
15
15
|
|
|
16
16
|
static BOOL FBVoiceOverBuildSDKUnsupportedError(NSError **error)
|
|
17
17
|
{
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
<key>CFBundlePackageType</key>
|
|
16
16
|
<string>FMWK</string>
|
|
17
17
|
<key>CFBundleShortVersionString</key>
|
|
18
|
-
<string>14.1.
|
|
18
|
+
<string>14.1.1</string>
|
|
19
19
|
<key>CFBundleSignature</key>
|
|
20
20
|
<string>????</string>
|
|
21
21
|
<key>CFBundleVersion</key>
|
|
22
|
-
<string>14.1.
|
|
22
|
+
<string>14.1.1</string>
|
|
23
23
|
<key>NSPrincipalClass</key>
|
|
24
24
|
<string/>
|
|
25
25
|
</dict>
|
|
@@ -24,7 +24,7 @@ extern NSString* const FB_CAP_BUNDLE_ID;
|
|
|
24
24
|
Usually an URL used as initial link to run Mobile Safari, but could be any other deep link.
|
|
25
25
|
This might also work together with `FB_CAP_BUNLDE_ID`, which tells XCTest to open
|
|
26
26
|
the given deep link in the particular app.
|
|
27
|
-
Only works since iOS 16.4
|
|
27
|
+
Only works since iOS 16.4 runtime
|
|
28
28
|
*/
|
|
29
29
|
extern NSString* const FB_CAP_INITIAL_URL;
|
|
30
30
|
/** Whether to enforrce (re)start of the application under test on session startup */
|
|
@@ -134,7 +134,7 @@ static void swizzledLaunchApp(id self, SEL _cmd, NSString *path, NSString *bundl
|
|
|
134
134
|
XCTRunnerDaemonSession *session = [XCTRunnerDaemonSession sharedSession];
|
|
135
135
|
if (![session respondsToSelector:@selector(openURL:usingApplication:completion:)]) {
|
|
136
136
|
return [[[FBErrorBuilder builder]
|
|
137
|
-
withDescriptionFormat:@"The current
|
|
137
|
+
withDescriptionFormat:@"The current OS runtime does not support opening URLs with a given application"]
|
|
138
138
|
buildError:error];
|
|
139
139
|
}
|
|
140
140
|
|
|
@@ -161,7 +161,7 @@ static void swizzledLaunchApp(id self, SEL _cmd, NSString *path, NSString *bundl
|
|
|
161
161
|
XCTRunnerDaemonSession *session = [XCTRunnerDaemonSession sharedSession];
|
|
162
162
|
if (![session respondsToSelector:@selector(openDefaultApplicationForURL:completion:)]) {
|
|
163
163
|
return [[[FBErrorBuilder builder]
|
|
164
|
-
withDescriptionFormat:@"The current
|
|
164
|
+
withDescriptionFormat:@"The current OS runtime does not support opening URLs. This API requires an iOS 16.4+ runtime"]
|
|
165
165
|
buildError:error];
|
|
166
166
|
}
|
|
167
167
|
|
|
@@ -189,7 +189,7 @@ static void swizzledLaunchApp(id self, SEL _cmd, NSString *path, NSString *bundl
|
|
|
189
189
|
XCTRunnerDaemonSession *session = [XCTRunnerDaemonSession sharedSession];
|
|
190
190
|
if (![session respondsToSelector:@selector(setSimulatedLocation:completion:)]) {
|
|
191
191
|
return [[[FBErrorBuilder builder]
|
|
192
|
-
withDescriptionFormat:@"The current
|
|
192
|
+
withDescriptionFormat:@"The current OS runtime does not support location simulation. This API requires an iOS 16.4+ runtime"]
|
|
193
193
|
buildError:error];
|
|
194
194
|
}
|
|
195
195
|
if (![session supportsLocationSimulation]) {
|
|
@@ -221,7 +221,7 @@ static void swizzledLaunchApp(id self, SEL _cmd, NSString *path, NSString *bundl
|
|
|
221
221
|
XCTRunnerDaemonSession *session = [XCTRunnerDaemonSession sharedSession];
|
|
222
222
|
if (![session respondsToSelector:@selector(getSimulatedLocationWithReply:)]) {
|
|
223
223
|
[[[FBErrorBuilder builder]
|
|
224
|
-
withDescriptionFormat:@"The current
|
|
224
|
+
withDescriptionFormat:@"The current OS runtime does not support location simulation. This API requires an iOS 16.4+ runtime"]
|
|
225
225
|
buildError:error];
|
|
226
226
|
return nil;
|
|
227
227
|
}
|
|
@@ -255,7 +255,7 @@ static void swizzledLaunchApp(id self, SEL _cmd, NSString *path, NSString *bundl
|
|
|
255
255
|
XCTRunnerDaemonSession *session = [XCTRunnerDaemonSession sharedSession];
|
|
256
256
|
if (![session respondsToSelector:@selector(clearSimulatedLocationWithReply:)]) {
|
|
257
257
|
return [[[FBErrorBuilder builder]
|
|
258
|
-
withDescriptionFormat:@"The current
|
|
258
|
+
withDescriptionFormat:@"The current OS runtime does not support location simulation. This API requires an iOS 16.4+ runtime"]
|
|
259
259
|
buildError:error];
|
|
260
260
|
}
|
|
261
261
|
if (![session supportsLocationSimulation]) {
|
|
@@ -289,7 +289,7 @@ static void swizzledLaunchApp(id self, SEL _cmd, NSString *path, NSString *bundl
|
|
|
289
289
|
XCTRunnerDaemonSession *session = [XCTRunnerDaemonSession sharedSession];
|
|
290
290
|
if (![session respondsToSelector:@selector(startScreenRecordingWithRequest:withReply:)]) {
|
|
291
291
|
[[[FBErrorBuilder builder]
|
|
292
|
-
withDescriptionFormat:@"The current
|
|
292
|
+
withDescriptionFormat:@"The current OS runtime does not support screen recording. This API requires an iOS 17+ runtime"]
|
|
293
293
|
buildError:error];
|
|
294
294
|
return nil;
|
|
295
295
|
}
|
|
@@ -331,7 +331,7 @@ static void swizzledLaunchApp(id self, SEL _cmd, NSString *path, NSString *bundl
|
|
|
331
331
|
XCTRunnerDaemonSession *session = [XCTRunnerDaemonSession sharedSession];
|
|
332
332
|
if (![session respondsToSelector:@selector(stopScreenRecordingWithUUID:withReply:)]) {
|
|
333
333
|
return [[[FBErrorBuilder builder]
|
|
334
|
-
withDescriptionFormat:@"The current
|
|
334
|
+
withDescriptionFormat:@"The current OS runtime does not support screen recording. This API requires an iOS 17+ runtime"]
|
|
335
335
|
buildError:error];
|
|
336
336
|
|
|
337
337
|
}
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
NSError *error = nil;
|
|
39
39
|
XCTAssertFalse([XCUIDevice.sharedDevice fb_enableVoiceOver:&error]);
|
|
40
40
|
XCTAssertNotNil(error);
|
|
41
|
-
XCTAssertTrue([error.localizedDescription containsString:@"
|
|
41
|
+
XCTAssertTrue([error.localizedDescription containsString:@"iOS 27"]);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
- (void)testVoiceOverEnableDisableAndNavigation
|