@@ -42,7 +42,7 @@ open class Snapshot: NSObject {
42
42
43
43
do {
44
44
let trimCharacterSet = CharacterSet . whitespacesAndNewlines
45
- deviceLanguage = try NSString ( contentsOfFile : path, encoding: String . Encoding . utf8. rawValue ) . trimmingCharacters ( in: trimCharacterSet) as String
45
+ deviceLanguage = try String ( contentsOf : path, encoding: . utf8) . trimmingCharacters ( in: trimCharacterSet)
46
46
app. launchArguments += [ " -AppleLanguages " , " ( \( deviceLanguage) ) " ]
47
47
} catch {
48
48
print ( " Couldn't detect/set language... " )
@@ -58,7 +58,7 @@ open class Snapshot: NSObject {
58
58
59
59
do {
60
60
let trimCharacterSet = CharacterSet . whitespacesAndNewlines
61
- locale = try NSString ( contentsOfFile : path, encoding: String . Encoding . utf8. rawValue ) . trimmingCharacters ( in: trimCharacterSet) as String
61
+ locale = try String ( contentsOf : path, encoding: . utf8) . trimmingCharacters ( in: trimCharacterSet)
62
62
} catch {
63
63
print ( " Couldn't detect/set locale... " )
64
64
}
@@ -77,7 +77,7 @@ open class Snapshot: NSObject {
77
77
app. launchArguments += [ " -FASTLANE_SNAPSHOT " , " YES " , " -ui_testing " ]
78
78
79
79
do {
80
- let launchArguments = try NSString ( contentsOfFile : path, encoding: String . Encoding. utf8. rawValue ) as String
80
+ let launchArguments = try String ( contentsOf : path, encoding: String . Encoding. utf8)
81
81
let regex = try NSRegularExpression ( pattern: " ( \\ \" .+? \\ \" | \\ S+) " , options: [ ] )
82
82
let matches = regex. matches ( in: launchArguments, options: [ ] , range: NSRange ( location: 0 , length: launchArguments. characters. count) )
83
83
let results = matches. map { result -> String in
@@ -100,6 +100,8 @@ open class Snapshot: NSObject {
100
100
101
101
#if os(tvOS)
102
102
XCUIApplication ( ) . childrenMatchingType ( . Browser) . count
103
+ #elseif os(OSX)
104
+ XCUIApplication ( ) . typeKey ( XCUIKeyboardKeySecondaryFn, modifierFlags: [ ] )
103
105
#else
104
106
XCUIDevice . shared ( ) . orientation = . unknown
105
107
#endif
@@ -118,21 +120,47 @@ open class Snapshot: NSObject {
118
120
}
119
121
}
120
122
121
- class func pathPrefix( ) -> NSString ? {
122
- if let path = ProcessInfo ( ) . environment [ " SIMULATOR_HOST_HOME " ] as NSString ? {
123
- return path. appendingPathComponent ( " Library/Caches/tools.fastlane " ) as NSString ?
124
- }
125
- print ( " Couldn't find Snapshot configuration files at ~/Library/Caches/tools.fastlane " )
126
- return nil
123
+ class func pathPrefix( ) -> URL ? {
124
+ let homeDir : URL
125
+ //on OSX config is stored in /Users/<username>/Library
126
+ //and on iOS/tvOS/WatchOS it's in simulator's home dir
127
+ #if os(OSX)
128
+ guard let user = ProcessInfo ( ) . environment [ " USER " ] else {
129
+ print ( " Couldn't find Snapshot configuration files - can't detect current user " )
130
+ return nil
131
+ }
132
+
133
+ guard let usersDir = FileManager . default. urls ( for: . userDirectory, in: . localDomainMask) . first else {
134
+ print ( " Couldn't find Snapshot configuration files - can't detect `Users` dir " )
135
+ return nil
136
+ }
137
+
138
+ homeDir = usersDir. appendingPathComponent ( user)
139
+ #else
140
+ guard let simulatorHostHome = ProcessInfo ( ) . environment [ " SIMULATOR_HOST_HOME " ] else {
141
+ print ( " Couldn't find simulator home location. Please, check SIMULATOR_HOST_HOME env variable. " )
142
+ return nil
143
+ }
144
+ guard let homeDirUrl = URL ( string: simulatorHostHome) else {
145
+ print ( " Can't prepare environment. Simulator home location is inaccessible. Does \( simulatorHostHome) exist? " )
146
+ return nil
147
+ }
148
+ homeDir = homeDirUrl
149
+ #endif
150
+ return homeDir. appendingPathComponent ( " Library/Caches/tools.fastlane " )
127
151
}
128
152
}
129
153
130
154
extension XCUIElement {
131
155
var isLoadingIndicator : Bool {
156
+ let whiteListedLoaders = [ " GeofenceLocationTrackingOn " , " StandardLocationTrackingOn " ]
157
+ if whiteListedLoaders. contains ( self . identifier) {
158
+ return false
159
+ }
132
160
return self . frame. size == CGSize ( width: 10 , height: 20 )
133
161
}
134
162
}
135
163
136
164
// Please don't remove the lines below
137
165
// They are used to detect outdated configuration files
138
- // SnapshotHelperVersion [1.2 ]
166
+ // SnapshotHelperVersion [1.3 ]
0 commit comments