From ab220c5849a7644e0bf35214b7e9ff58ee5762e7 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Thu, 20 Jul 2023 16:23:45 +0200 Subject: [PATCH] ignore calls to `select[Fine|Coarse]Location()` on iOS < 14 (#1564) --- .../ios/Classes/AutomatorServer/Automator.swift | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/patrol/ios/Classes/AutomatorServer/Automator.swift b/packages/patrol/ios/Classes/AutomatorServer/Automator.swift index 154a8f32c..80c727853 100644 --- a/packages/patrol/ios/Classes/AutomatorServer/Automator.swift +++ b/packages/patrol/ios/Classes/AutomatorServer/Automator.swift @@ -482,6 +482,11 @@ } func selectFineLocation() async throws { + if iOS13orOlder() { + Logger.shared.i("Ignored call to selectFineLocation() (iOS < 14)") + return + } + try await runAction("selecting fine location") { let alerts = self.springboard.alerts let button = alerts.buttons["Precise: Off"] @@ -496,6 +501,11 @@ } func selectCoarseLocation() async throws { + if iOS13orOlder() { + Logger.shared.i("Ignored call to selectCoarseLocation() (iOS < 14)") + return + } + try await runAction("selecting coarse location") { let alerts = self.springboard.alerts let button = alerts.buttons["Precise: On"] @@ -574,6 +584,11 @@ || model == "iPhone14,6" // iPhone SE 3rd Gen } + private func iOS13orOlder() -> Bool { + let floatVersion = (UIDevice.current.systemVersion as NSString).floatValue + return floatVersion < 14 + } + /// Adapted from https://stackoverflow.com/q/47880395/7009800 @discardableResult func waitForAnyElement(elements: [XCUIElement], timeout: TimeInterval) -> XCUIElement? {