diff --git a/Application/Presentation/ProfileTab/Sources/Settings/SettingsFeature.swift b/Application/Presentation/ProfileTab/Sources/Settings/SettingsFeature.swift index feb71af6..f2201985 100644 --- a/Application/Presentation/ProfileTab/Sources/Settings/SettingsFeature.swift +++ b/Application/Presentation/ProfileTab/Sources/Settings/SettingsFeature.swift @@ -34,13 +34,30 @@ struct SettingsFeature { var loading = LoadingFeature.State() var alertType: Action.AlertType? var appVersion = Self.appVersion() - var appstoreUrl = Bundle.main.object(forInfoDictionaryKey: "TESTFLIGHT_URL") as? String + var betaTestURL = Self.betaTestURL( + databaseID: Bundle.main.object(forInfoDictionaryKey: "FIRESTORE_DATABASE_ID") as? String, + testFlightURL: Bundle.main.object(forInfoDictionaryKey: "TESTFLIGHT_URL") as? String + ) var policyURL = Bundle.main.object(forInfoDictionaryKey: "PRIVACY_POLICY_URL") as? String var isLoading: Bool { loading.isLoading } + static func betaTestURL(databaseID: String?, testFlightURL: String?) -> URL? { + guard databaseID?.trimmingCharacters(in: .whitespacesAndNewlines) == "prod", + let rawValue = testFlightURL else { + return nil + } + + let urlString = rawValue.trimmingCharacters(in: .whitespacesAndNewlines) + guard !urlString.isEmpty, !urlString.hasPrefix("$(") else { + return nil + } + + return URL(string: urlString) + } + private static func appVersion() -> String? { let marketingVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String let buildNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String diff --git a/Application/Presentation/ProfileTab/Sources/Settings/SettingsView.swift b/Application/Presentation/ProfileTab/Sources/Settings/SettingsView.swift index 7b275190..38e12f77 100644 --- a/Application/Presentation/ProfileTab/Sources/Settings/SettingsView.swift +++ b/Application/Presentation/ProfileTab/Sources/Settings/SettingsView.swift @@ -71,17 +71,15 @@ struct SettingsView: View { .foregroundColor(Color.blue) } } - Button(action: { - if let appStoreString = store.appstoreUrl, - let url = URL(string: appStoreString) { - UIApplication.shared.open(url) - } - }) { - VStack(alignment: .leading) { - Text(String(localized: "settings_join_beta")) - Text(String(localized: "settings_join_beta_subtitle")) - .foregroundStyle(Color.gray) - .font(.caption) + if let betaTestURL = store.betaTestURL { + Link(destination: betaTestURL) { + VStack(alignment: .leading) { + Text(String(localized: "settings_join_beta")) + .foregroundStyle(Color.primary) + Text(String(localized: "settings_join_beta_subtitle")) + .foregroundStyle(Color.gray) + .font(.caption) + } } } }