From 3de1ae2a23eba6c0f4a9e11b221dd70b7e71b4e7 Mon Sep 17 00:00:00 2001 From: Robert Eggl Date: Wed, 14 Aug 2024 04:43:14 +0200 Subject: [PATCH] feat: Add support for checking if the iOS app is running on macOS --- ios/RNAptabaseModule.swift | 12 ++++++++++-- src/env.ts | 4 ++++ src/version.ts | 2 ++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ios/RNAptabaseModule.swift b/ios/RNAptabaseModule.swift index 2930d13..98c3563 100644 --- a/ios/RNAptabaseModule.swift +++ b/ios/RNAptabaseModule.swift @@ -2,12 +2,20 @@ import Foundation @objc(RNAptabaseModule) class RNAptabaseModule: NSObject { + @objc func constantsToExport() -> [AnyHashable : Any]! { return [ "appVersion": Bundle.main.infoDictionary?["CFBundleShortVersionString"] as Any, - "appBuildNumber": Bundle.main.infoDictionary?["CFBundleVersion"] as Any - ] + "appBuildNumber": Bundle.main.infoDictionary?["CFBundleVersion"] as Any, + "isiOSAppOnMac": { + if #available(iOS 14.0, *) { + return ProcessInfo.processInfo.isiOSAppOnMac + } else { + return false + } + }() + ] } @objc diff --git a/src/env.ts b/src/env.ts index 0e62d76..154331a 100644 --- a/src/env.ts +++ b/src/env.ts @@ -36,6 +36,10 @@ function getOperatingSystem(): [string, string] { return ["Android", Platform.constants.Release]; case "ios": if (Platform.isPad) { + if (version.isiOSAppOnMac) { + // Version represents the emulated iPadOS version and not the MacOS version + return ["MacOS", Platform.Version]; + } return ["iPadOS", Platform.Version]; } return ["iOS", Platform.Version]; diff --git a/src/version.ts b/src/version.ts index a66663d..e06cead 100644 --- a/src/version.ts +++ b/src/version.ts @@ -5,11 +5,13 @@ const { RNAptabaseModule } = NativeModules; type VersionObject = { appVersion: string; appBuildNumber: string; + isiOSAppOnMac: boolean; }; const Version: VersionObject = { appVersion: RNAptabaseModule?.appVersion?.toString() ?? "", appBuildNumber: RNAptabaseModule?.appBuildNumber?.toString() ?? "", + isiOSAppOnMac: RNAptabaseModule?.isiOSAppOnMac ?? false, }; export default Version;