From 6e5b4be4388ad971ce9e4bf2bac21fa413bb06e5 Mon Sep 17 00:00:00 2001 From: Aliaksandr Bialiauski Date: Wed, 8 Sep 2021 17:55:25 +0300 Subject: [PATCH] Backward compatible serviceAccessToken (#591) --- .../DirectionsCredentials.swift | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/Sources/MapboxDirections/DirectionsCredentials.swift b/Sources/MapboxDirections/DirectionsCredentials.swift index b4f01b405..9f54496d9 100644 --- a/Sources/MapboxDirections/DirectionsCredentials.swift +++ b/Sources/MapboxDirections/DirectionsCredentials.swift @@ -24,14 +24,21 @@ public struct DirectionsCredentials: Equatable { */ public var skuToken: String? { #if !os(Linux) - guard let mbx: AnyClass = NSClassFromString("MBXAccounts") else { return nil } - guard mbx.responds(to: Selector(("serviceSkuToken"))) else { return nil } - guard let serviceSkuToken = mbx.value(forKeyPath: "serviceSkuToken") as? String, - let serviceAccessToken = mbx.value(forKeyPath: "serviceAccessToken") as? String, - serviceAccessToken == accessToken else { - return nil - } - return serviceSkuToken + guard let mbx: AnyClass = NSClassFromString("MBXAccounts"), + mbx.responds(to: Selector(("serviceSkuToken"))), + let serviceSkuToken = mbx.value(forKeyPath: "serviceSkuToken") as? String + else { return nil } + + if mbx.responds(to: Selector(("serviceAccessToken"))) { + guard let serviceAccessToken = mbx.value(forKeyPath: "serviceAccessToken") as? String, + serviceAccessToken == accessToken + else { return nil } + + return serviceSkuToken + } + else { + return serviceSkuToken + } #else return nil #endif