In Xcode 10.2 beta 1 and 2, Apple removed the class method + (id)sharedClient, causing WebDriverAgent to fail/crash.
The WDA does not crash per say, but it will not be able to perform any touch actions, and also will not be able to retrieve any information related to that class such as the list of active applications.
Here is the class_dump result for the previous Xcode (10.1) :
@interface XCAXClient_iOS : NSObject
{
id _applicationProcessTracker;
id _remoteAXInterface;
NSObject_queue;
NSMutableDictionary _userTestingNotificationHandlers;
NSMutableDictionary *_cachedAccessibilityLoadedValuesForPIDs;
}
In Xcode 10.2 beta 1 and 2, Apple removed the class method + (id)sharedClient, causing WebDriverAgent to fail/crash.
The WDA does not crash per say, but it will not be able to perform any touch actions, and also will not be able to retrieve any information related to that class such as the list of active applications.
Here is the class_dump result for the previous Xcode (10.1) :
@interface XCAXClient_iOS : NSObject
{
id _applicationProcessTracker;
id _remoteAXInterface;
NSObject _queue;
NSMutableDictionary _userTestingNotificationHandlers;
NSMutableDictionary *_cachedAccessibilityLoadedValuesForPIDs;
}
+ (id)sharedClient; @property(retain) NSMutableDictionary cachedAccessibilityLoadedValuesForPIDs; // @synthesize cachedAccessibilityLoadedValuesForPIDs=_cachedAccessibilityLoadedValuesForPIDs; @property(retain) NSMutableDictionary userTestingNotificationHandlers; // @synthesize userTestingNotificationHandlers=_userTestingNotificationHandlers; @property(retain) NSObject *queue; // @synthesize queue=_queue;
// Remaining properties @property(readonly, copy) NSString debugDescription; @property(readonly, copy) NSString description; @property(readonly) unsigned long long hash; @property(readonly) Class superclass;
@end
And now for the new Xcode :
@interface XCAXClient_iOS : NSObject
{
id _applicationProcessTracker;
id _remoteAccessibilityInterface;
NSObject _queue;
NSMutableDictionary _userTestingNotificationHandlers;
NSMutableDictionary *_cachedAccessibilityLoadedValuesForPIDs;
}
@property(retain) NSMutableDictionary cachedAccessibilityLoadedValuesForPIDs; // @synthesize cachedAccessibilityLoadedValuesForPIDs=_cachedAccessibilityLoadedValuesForPIDs; @property(retain) NSMutableDictionary userTestingNotificationHandlers; // @synthesize userTestingNotificationHandlers=_userTestingNotificationHandlers; @property(retain) NSObject *queue; // @synthesize queue=_queue;
@property(readonly) id remoteAccessibilityInterface; // @synthesize remoteAccessibilityInterface=_remoteAccessibilityInterface;
@property(readonly) id applicationProcessTracker; // @synthesize applicationProcessTracker=_applicationProcessTracker;
// Remaining properties @property(readonly, copy) NSString debugDescription; @property(readonly, copy) NSString description; @property(readonly) unsigned long long hash; @property(readonly) Class superclass;
@end