Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,32 @@ jobs:
uses: gradle/actions/setup-gradle@v4
- name: Build OneSignalKMP XCFramework
run: iOS_SDK/OneSignalSDK/build_kmp_xcframework.sh
- 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
Comment thread
fadi-george marked this conversation as resolved.
- 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 "$(uname -m)-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"
Comment thread
fadi-george marked this conversation as resolved.
- name: Set Default Scheme
run: |
default="UnitTestApp"
Expand Down
25 changes: 25 additions & 0 deletions iOS_SDK/OneSignalSDK/CatalystLoggerHost/main.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import Foundation
import OneSignalOSCore

let logger = OSRemoteLogger(
installIdProvider: { "catalyst-host" },
onesignalIdProvider: { nil },
pushSubscriptionIdProvider: { nil },
appStateProvider: { "foreground" },
featureFlagsProvider: { [] },
remoteLogLevelProvider: { "INFO" },
exporterLoggingEnabledProvider: { false }
)

precondition(!logger.kmpVersion.isEmpty)
precondition(!logger.crashStoragePath.isEmpty)

logger.start()
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()
Comment thread
fadi-george marked this conversation as resolved.
33 changes: 33 additions & 0 deletions iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -7908,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",
Expand All @@ -7929,6 +7940,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;
Expand Down Expand Up @@ -8307,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",
Expand All @@ -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;
Expand Down Expand Up @@ -8394,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",
Expand All @@ -8415,6 +8438,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;
Expand Down Expand Up @@ -9235,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",
Expand All @@ -9256,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",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1520"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3C115160289A259500565C41"
BuildableName = "OneSignalOSCore.framework"
BlueprintName = "OneSignalOSCore"
ReferencedContainer = "container:OneSignal.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Test"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3C115160289A259500565C41"
BuildableName = "OneSignalOSCore.framework"
BlueprintName = "OneSignalOSCore"
ReferencedContainer = "container:OneSignal.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -236,5 +233,3 @@ final class FileLogStore: ILogFileStore {
}
}
}

#endif
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -51,5 +48,3 @@ final class IOSLogger: ILogger {
OneSignalLog.onesignalLog(.LL_DEBUG, message: message)
}
}

#endif
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@
THE SOFTWARE.
*/

// Kotlin/Native does not produce a Mac Catalyst framework slice.
#if !targetEnvironment(macCatalyst)

import Foundation
@_implementationOnly import OneSignalKMP

Expand All @@ -36,11 +33,8 @@ extension KotlinByteArray {
AppleByteArrayInterop.shared.toNSData(bytes: self)
}
}

extension Data {
var kotlinByteArray: KotlinByteArray {
AppleByteArrayInterop.shared.toByteArray(data: self)
}
}

#endif
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -223,5 +220,3 @@ final class OSLogCrashHandler: ILogCrashHandler {
return String(fields[1])
}
}

#endif
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -110,6 +107,15 @@ 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] = {
#if targetEnvironment(macCatalyst)
return ["apple_platform": "mac_catalyst"]
#else
return [:]
#endif
}()
var enabledFeatureFlags: [String] {
featureFlagsProvider()
}
Expand Down Expand Up @@ -241,5 +247,3 @@ final class OSLoggerPlatformProvider: ILoggerPlatformProvider {
}

}

#endif
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,6 @@ public extension OSRemoteLoggerProtocol {
func start() {}
}

#if !targetEnvironment(macCatalyst)

@_implementationOnly import OneSignalKMP

private final class OSRemoteLoggerLifecycle {
Expand Down Expand Up @@ -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
Loading
Loading