From 4edb84f1d45eb7dbb2941b26f8a2545901b89aa5 Mon Sep 17 00:00:00 2001 From: Fadi George Date: Wed, 12 Aug 2026 13:50:01 -0700 Subject: [PATCH 1/2] feat(logging): enable KMP Mac Catalyst support --- .github/workflows/ci.yml | 43 +++++++++++++++++++ .../CatalystLoggerHost/main.swift | 24 +++++++++++ .../OneSignal.xcodeproj/project.pbxproj | 27 ++++++++++++ .../Source/Logging/FileLogStore.swift | 5 --- .../Source/Logging/IOSLogger.swift | 5 --- .../Source/Logging/KotlinByteArray+Data.swift | 6 --- .../Source/Logging/OSLogCrashHandler.swift | 5 --- .../Logging/OSLoggerPlatformProvider.swift | 8 ++-- .../Source/Logging/OSRemoteLogger.swift | 38 ---------------- .../Logging/OneSignalLogHttpSender.swift | 5 --- 10 files changed, 97 insertions(+), 69 deletions(-) create mode 100644 iOS_SDK/OneSignalSDK/CatalystLoggerHost/main.swift diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6084cd3f7..5b6f1773d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,6 +30,49 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Build OneSignalKMP XCFramework run: iOS_SDK/OneSignalSDK/build_kmp_xcframework.sh + - name: Verify OneSignalKMP Catalyst slice + run: | + binary="OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst/OneSignalKMP.framework/OneSignalKMP" + architectures=" $(lipo -archs "$binary") " + [[ "$architectures" == *" arm64 "* ]] + [[ "$architectures" == *" x86_64 "* ]] + verification_dir="$(mktemp -d)" + trap 'rm -rf "$verification_dir"' EXIT + for architecture in arm64 x86_64; do + mkdir "$verification_dir/$architecture" + lipo "$binary" -thin "$architecture" -output "$verification_dir/$architecture/OneSignalKMP.a" + ( + cd "$verification_dir/$architecture" + ar -x OneSignalKMP.a OneSignalKMP.framework.o + vtool -show-build OneSignalKMP.framework.o | grep -q 'platform MACCATALYST' + ) + done + - name: Archive OneSignalOSCore for Catalyst + run: | + xcodebuild archive \ + -scheme OneSignalOSCore \ + -project iOS_SDK/OneSignalSDK/OneSignal.xcodeproj \ + -destination 'generic/platform=macOS,variant=Mac Catalyst' \ + -archivePath "$RUNNER_TEMP/OneSignalOSCore-Catalyst.xcarchive" \ + SKIP_INSTALL=NO \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES \ + CODE_SIGN_IDENTITY= \ + CODE_SIGNING_REQUIRED=NO \ + CODE_SIGNING_ALLOWED=NO + - name: Run KMP logger Catalyst host + run: | + frameworks="$RUNNER_TEMP/OneSignalOSCore-Catalyst.xcarchive/Products/Library/Frameworks" + host="$RUNNER_TEMP/CatalystLoggerHost" + xcrun --sdk macosx swiftc \ + -target arm64-apple-ios14.0-macabi \ + -F "$frameworks" \ + -framework OneSignalOSCore \ + -framework OneSignalCore \ + -Xlinker -rpath \ + -Xlinker "$frameworks" \ + iOS_SDK/OneSignalSDK/CatalystLoggerHost/main.swift \ + -o "$host" + DYLD_FRAMEWORK_PATH="$frameworks" "$host" - name: Set Default Scheme run: | default="UnitTestApp" diff --git a/iOS_SDK/OneSignalSDK/CatalystLoggerHost/main.swift b/iOS_SDK/OneSignalSDK/CatalystLoggerHost/main.swift new file mode 100644 index 000000000..34b263a80 --- /dev/null +++ b/iOS_SDK/OneSignalSDK/CatalystLoggerHost/main.swift @@ -0,0 +1,24 @@ +import Foundation +import OneSignalOSCore + +let logger = OSRemoteLogger( + installIdProvider: { "catalyst-host" }, + onesignalIdProvider: { nil }, + pushSubscriptionIdProvider: { nil }, + appStateProvider: { "foreground" }, + featureFlagsProvider: { [] }, + remoteLogLevelProvider: { "INFO" }, + exporterLoggingEnabledProvider: { false } +) + +precondition(logger.kmpVersion != "unavailable") +precondition(logger.crashStoragePath != "unavailable") + +logger.log(level: "INFO", message: "Catalyst logger round trip") + +let flushed = DispatchSemaphore(value: 0) +logger.forceFlush { + flushed.signal() +} +precondition(flushed.wait(timeout: .now() + 5) == .success) +logger.shutdown() diff --git a/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj b/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj index 2ad50490c..b76de0f8d 100644 --- a/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj +++ b/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj @@ -7198,6 +7198,10 @@ DEPLOYMENT_POSTPROCESSING = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + "FRAMEWORK_SEARCH_PATHS[sdk=macosx*]" = ( + "$(inherited)", + "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst", + ); GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -7402,6 +7406,10 @@ DEPLOYMENT_POSTPROCESSING = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + "FRAMEWORK_SEARCH_PATHS[sdk=macosx*]" = ( + "$(inherited)", + "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst", + ); GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -7608,6 +7616,10 @@ DEPLOYMENT_POSTPROCESSING = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + "FRAMEWORK_SEARCH_PATHS[sdk=macosx*]" = ( + "$(inherited)", + "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst", + ); GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -7929,6 +7941,11 @@ "-force_load", "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-simulator/OneSignalKMP.framework/OneSignalKMP", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "$(inherited)", + "-force_load", + "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst/OneSignalKMP.framework/OneSignalKMP", + ); PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.OneSignalCore; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; @@ -8328,6 +8345,11 @@ "-force_load", "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-simulator/OneSignalKMP.framework/OneSignalKMP", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "$(inherited)", + "-force_load", + "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst/OneSignalKMP.framework/OneSignalKMP", + ); PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.OneSignalCore; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; @@ -8415,6 +8437,11 @@ "-force_load", "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-simulator/OneSignalKMP.framework/OneSignalKMP", ); + "OTHER_LDFLAGS[sdk=macosx*]" = ( + "$(inherited)", + "-force_load", + "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst/OneSignalKMP.framework/OneSignalKMP", + ); PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.OneSignalCore; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; diff --git a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/FileLogStore.swift b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/FileLogStore.swift index 85bf04266..e70dbc73c 100644 --- a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/FileLogStore.swift +++ b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/FileLogStore.swift @@ -25,9 +25,6 @@ THE SOFTWARE. */ -// Kotlin/Native does not produce a Mac Catalyst framework slice. -#if !targetEnvironment(macCatalyst) - import Darwin import Foundation import OneSignalCore @@ -236,5 +233,3 @@ final class FileLogStore: ILogFileStore { } } } - -#endif diff --git a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/IOSLogger.swift b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/IOSLogger.swift index 682cf1360..3b981b814 100644 --- a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/IOSLogger.swift +++ b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/IOSLogger.swift @@ -25,9 +25,6 @@ THE SOFTWARE. */ -// Kotlin/Native does not produce a Mac Catalyst framework slice. -#if !targetEnvironment(macCatalyst) - import Foundation import OneSignalCore @_implementationOnly import OneSignalKMP @@ -51,5 +48,3 @@ final class IOSLogger: ILogger { OneSignalLog.onesignalLog(.LL_DEBUG, message: message) } } - -#endif diff --git a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/KotlinByteArray+Data.swift b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/KotlinByteArray+Data.swift index 31b38b0bd..64ccf18e6 100644 --- a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/KotlinByteArray+Data.swift +++ b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/KotlinByteArray+Data.swift @@ -25,9 +25,6 @@ THE SOFTWARE. */ -// Kotlin/Native does not produce a Mac Catalyst framework slice. -#if !targetEnvironment(macCatalyst) - import Foundation @_implementationOnly import OneSignalKMP @@ -36,11 +33,8 @@ extension KotlinByteArray { AppleByteArrayInterop.shared.toNSData(bytes: self) } } - extension Data { var kotlinByteArray: KotlinByteArray { AppleByteArrayInterop.shared.toByteArray(data: self) } } - -#endif diff --git a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSLogCrashHandler.swift b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSLogCrashHandler.swift index 555abbcc6..a310fe9b3 100644 --- a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSLogCrashHandler.swift +++ b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSLogCrashHandler.swift @@ -25,9 +25,6 @@ THE SOFTWARE. */ -// Kotlin/Native does not produce a Mac Catalyst framework slice. -#if !targetEnvironment(macCatalyst) - import Darwin import Foundation @_implementationOnly import OneSignalKMP @@ -223,5 +220,3 @@ final class OSLogCrashHandler: ILogCrashHandler { return String(fields[1]) } } - -#endif diff --git a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSLoggerPlatformProvider.swift b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSLoggerPlatformProvider.swift index c8ae20ee2..8f8776d45 100644 --- a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSLoggerPlatformProvider.swift +++ b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSLoggerPlatformProvider.swift @@ -25,9 +25,6 @@ THE SOFTWARE. */ -// Kotlin/Native does not produce a Mac Catalyst framework slice. -#if !targetEnvironment(macCatalyst) - import Darwin import Foundation import OneSignalCore @@ -110,6 +107,9 @@ final class OSLoggerPlatformProvider: ILoggerPlatformProvider { let osBuildId = OSLoggerPlatformProvider.systemValue(named: Constants.osBuildName) let sdkWrapper = OneSignalWrapper.sdkType let sdkWrapperVersion = OneSignalWrapper.sdkVersion + let kotlinVersion: String? = nil + let swiftVersion: String? = nil + let additionalVersionAttributes: [String: String] = [:] var enabledFeatureFlags: [String] { featureFlagsProvider() } @@ -241,5 +241,3 @@ final class OSLoggerPlatformProvider: ILoggerPlatformProvider { } } - -#endif diff --git a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSRemoteLogger.swift b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSRemoteLogger.swift index 38df28cc4..5278c49ef 100644 --- a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSRemoteLogger.swift +++ b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSRemoteLogger.swift @@ -52,8 +52,6 @@ public extension OSRemoteLoggerProtocol { func start() {} } -#if !targetEnvironment(macCatalyst) - @_implementationOnly import OneSignalKMP private final class OSRemoteLoggerLifecycle { @@ -305,39 +303,3 @@ public final class OSRemoteLogger: OSRemoteLoggerProtocol { @_spi(OneSignalInternal) extension OSRemoteLogger: OSStructuredRemoteLoggerProtocol {} - -#else - -public final class OSRemoteLogger: OSRemoteLoggerProtocol { - public init( - installIdProvider: @escaping () -> String, - onesignalIdProvider: @escaping () -> String?, - pushSubscriptionIdProvider: @escaping () -> String?, - appStateProvider: @escaping () -> String, - featureFlagsProvider: @escaping () -> [String], - remoteLogLevelProvider: @escaping () -> String?, - exporterLoggingEnabledProvider: @escaping () -> Bool - ) {} - - public let kmpVersion = "unavailable" - public let crashStoragePath = "unavailable" - - public func start() {} - public func log(level: String, message: String) {} - public func log( - level: String, - message: String, - exceptionType: String?, - exceptionMessage: String?, - exceptionStacktrace: String? - ) {} - public func forceFlush(completion: @escaping () -> Void) { - completion() - } - public func shutdown() {} -} - -@_spi(OneSignalInternal) -extension OSRemoteLogger: OSStructuredRemoteLoggerProtocol {} - -#endif diff --git a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OneSignalLogHttpSender.swift b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OneSignalLogHttpSender.swift index e8219a204..68a926822 100644 --- a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OneSignalLogHttpSender.swift +++ b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OneSignalLogHttpSender.swift @@ -25,9 +25,6 @@ THE SOFTWARE. */ -// Kotlin/Native does not produce a Mac Catalyst framework slice. -#if !targetEnvironment(macCatalyst) - import Foundation @_implementationOnly import OneSignalKMP @@ -207,5 +204,3 @@ final class OneSignalLogHttpSender: ILogHttpSender { String(body.prefix(maximumDiagnosticBodyLength)) } } - -#endif From dff802570100c2136d5dbd62043b3961a42f7e4d Mon Sep 17 00:00:00 2001 From: Fadi George Date: Wed, 12 Aug 2026 16:13:39 -0700 Subject: [PATCH 2/2] fix(logging): make Catalyst validation self-contained Pin the Catalyst-capable KMP artifact and exercise the active logger lifecycle on the CI runner architecture through a shared archive scheme. Co-authored-by: Cursor --- .github/workflows/ci.yml | 19 +----- OneSignal-KMP-SDK | 2 +- .../CatalystLoggerHost/main.swift | 5 +- .../OneSignal.xcodeproj/project.pbxproj | 30 +++++---- .../xcschemes/OneSignalOSCore.xcscheme | 67 +++++++++++++++++++ .../Logging/OSLoggerPlatformProvider.swift | 8 ++- 6 files changed, 97 insertions(+), 34 deletions(-) create mode 100644 iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/xcshareddata/xcschemes/OneSignalOSCore.xcscheme diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5b6f1773d..37dda3bc7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,23 +30,6 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Build OneSignalKMP XCFramework run: iOS_SDK/OneSignalSDK/build_kmp_xcframework.sh - - name: Verify OneSignalKMP Catalyst slice - run: | - binary="OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst/OneSignalKMP.framework/OneSignalKMP" - architectures=" $(lipo -archs "$binary") " - [[ "$architectures" == *" arm64 "* ]] - [[ "$architectures" == *" x86_64 "* ]] - verification_dir="$(mktemp -d)" - trap 'rm -rf "$verification_dir"' EXIT - for architecture in arm64 x86_64; do - mkdir "$verification_dir/$architecture" - lipo "$binary" -thin "$architecture" -output "$verification_dir/$architecture/OneSignalKMP.a" - ( - cd "$verification_dir/$architecture" - ar -x OneSignalKMP.a OneSignalKMP.framework.o - vtool -show-build OneSignalKMP.framework.o | grep -q 'platform MACCATALYST' - ) - done - name: Archive OneSignalOSCore for Catalyst run: | xcodebuild archive \ @@ -64,7 +47,7 @@ jobs: frameworks="$RUNNER_TEMP/OneSignalOSCore-Catalyst.xcarchive/Products/Library/Frameworks" host="$RUNNER_TEMP/CatalystLoggerHost" xcrun --sdk macosx swiftc \ - -target arm64-apple-ios14.0-macabi \ + -target "$(uname -m)-apple-ios14.0-macabi" \ -F "$frameworks" \ -framework OneSignalOSCore \ -framework OneSignalCore \ diff --git a/OneSignal-KMP-SDK b/OneSignal-KMP-SDK index 72581f399..c1656833f 160000 --- a/OneSignal-KMP-SDK +++ b/OneSignal-KMP-SDK @@ -1 +1 @@ -Subproject commit 72581f39968104755f322b7dc48f5b3e4a401403 +Subproject commit c1656833fa3335865bc75e26e50d36d7ba173687 diff --git a/iOS_SDK/OneSignalSDK/CatalystLoggerHost/main.swift b/iOS_SDK/OneSignalSDK/CatalystLoggerHost/main.swift index 34b263a80..527963311 100644 --- a/iOS_SDK/OneSignalSDK/CatalystLoggerHost/main.swift +++ b/iOS_SDK/OneSignalSDK/CatalystLoggerHost/main.swift @@ -11,9 +11,10 @@ let logger = OSRemoteLogger( exporterLoggingEnabledProvider: { false } ) -precondition(logger.kmpVersion != "unavailable") -precondition(logger.crashStoragePath != "unavailable") +precondition(!logger.kmpVersion.isEmpty) +precondition(!logger.crashStoragePath.isEmpty) +logger.start() logger.log(level: "INFO", message: "Catalyst logger round trip") let flushed = DispatchSemaphore(value: 0) diff --git a/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj b/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj index b76de0f8d..f80baa580 100644 --- a/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj +++ b/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj @@ -5440,6 +5440,10 @@ buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; BUILD_LIBRARY_FOR_DISTRIBUTION = YES; + "FRAMEWORK_SEARCH_PATHS[sdk=macosx*]" = ( + "$(inherited)", + "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst", + ); "FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = ( "$(inherited)", "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64", @@ -5481,6 +5485,7 @@ INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Hiptic. All rights reserved."; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 11.0; + "IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -5508,6 +5513,10 @@ buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; BUILD_LIBRARY_FOR_DISTRIBUTION = YES; + "FRAMEWORK_SEARCH_PATHS[sdk=macosx*]" = ( + "$(inherited)", + "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst", + ); "FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = ( "$(inherited)", "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64", @@ -5556,6 +5565,7 @@ INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Hiptic. All rights reserved."; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 11.0; + "IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -7198,10 +7208,6 @@ DEPLOYMENT_POSTPROCESSING = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "FRAMEWORK_SEARCH_PATHS[sdk=macosx*]" = ( - "$(inherited)", - "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst", - ); GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -7406,10 +7412,6 @@ DEPLOYMENT_POSTPROCESSING = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "FRAMEWORK_SEARCH_PATHS[sdk=macosx*]" = ( - "$(inherited)", - "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst", - ); GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -7616,10 +7618,6 @@ DEPLOYMENT_POSTPROCESSING = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "FRAMEWORK_SEARCH_PATHS[sdk=macosx*]" = ( - "$(inherited)", - "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst", - ); GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -7920,6 +7918,7 @@ INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2021 Hiptic. All rights reserved."; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 11.0; + "IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -8324,6 +8323,7 @@ INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2021 Hiptic. All rights reserved."; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 11.0; + "IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -8416,6 +8416,7 @@ INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2021 Hiptic. All rights reserved."; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 11.0; + "IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -9262,6 +9263,10 @@ buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; BUILD_LIBRARY_FOR_DISTRIBUTION = YES; + "FRAMEWORK_SEARCH_PATHS[sdk=macosx*]" = ( + "$(inherited)", + "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64_x86_64-maccatalyst", + ); "FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]" = ( "$(inherited)", "$(SRCROOT)/../../OneSignal-KMP-SDK/kmp/build/XCFrameworks/release/OneSignalKMP.xcframework/ios-arm64", @@ -9283,6 +9288,7 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = OneSignalOSCoreFramework/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 11.0; + "IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/xcshareddata/xcschemes/OneSignalOSCore.xcscheme b/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/xcshareddata/xcschemes/OneSignalOSCore.xcscheme new file mode 100644 index 000000000..2aa670e4a --- /dev/null +++ b/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/xcshareddata/xcschemes/OneSignalOSCore.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSLoggerPlatformProvider.swift b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSLoggerPlatformProvider.swift index 8f8776d45..c494aa8bf 100644 --- a/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSLoggerPlatformProvider.swift +++ b/iOS_SDK/OneSignalSDK/OneSignalOSCore/Source/Logging/OSLoggerPlatformProvider.swift @@ -109,7 +109,13 @@ final class OSLoggerPlatformProvider: ILoggerPlatformProvider { let sdkWrapperVersion = OneSignalWrapper.sdkVersion let kotlinVersion: String? = nil let swiftVersion: String? = nil - let additionalVersionAttributes: [String: String] = [:] + let additionalVersionAttributes: [String: String] = { + #if targetEnvironment(macCatalyst) + return ["apple_platform": "mac_catalyst"] + #else + return [:] + #endif + }() var enabledFeatureFlags: [String] { featureFlagsProvider() }