diff --git a/.changes/audio-processing-lifecycle b/.changes/audio-processing-lifecycle deleted file mode 100644 index a738535c6..000000000 --- a/.changes/audio-processing-lifecycle +++ /dev/null @@ -1 +0,0 @@ -patch type="fixed" "Audio processing delegate lifecycle" diff --git a/.changes/clamp-response-timeout b/.changes/clamp-response-timeout deleted file mode 100644 index e7e453ea2..000000000 --- a/.changes/clamp-response-timeout +++ /dev/null @@ -1 +0,0 @@ -patch type="fixed" "clamp response timeout in performRpc to minimal 1s" diff --git a/.changes/connection-credentials b/.changes/connection-credentials deleted file mode 100644 index 37cbf36c7..000000000 --- a/.changes/connection-credentials +++ /dev/null @@ -1 +0,0 @@ -patch type="added" "Abstract token source for easier token fetching in production and faster integration with sandbox environment" diff --git a/.changes/fix-app-ext-compile b/.changes/fix-app-ext-compile deleted file mode 100644 index c2147d6ad..000000000 --- a/.changes/fix-app-ext-compile +++ /dev/null @@ -1 +0,0 @@ -patch type="fixed" "App extension compile issues" diff --git a/.changes/last-spoke-at b/.changes/last-spoke-at deleted file mode 100644 index 30ec62561..000000000 --- a/.changes/last-spoke-at +++ /dev/null @@ -1 +0,0 @@ -patch type="added" "Add lastSpokeAt property to Participant" diff --git a/.changes/logger b/.changes/logger deleted file mode 100644 index fdb988d47..000000000 --- a/.changes/logger +++ /dev/null @@ -1 +0,0 @@ -minor type="added" "Improved logging with the interface for custom loggers" diff --git a/.changes/serial-cancellation b/.changes/serial-cancellation deleted file mode 100644 index f6efb63c7..000000000 --- a/.changes/serial-cancellation +++ /dev/null @@ -1 +0,0 @@ -patch type="fixed" "Serial operations cancellation semantics" \ No newline at end of file diff --git a/.changes/stream-type b/.changes/stream-type deleted file mode 100644 index dbd79d39e..000000000 --- a/.changes/stream-type +++ /dev/null @@ -1 +0,0 @@ -patch type="fixed" "Byte stream MIME type defaulting to text/plain" \ No newline at end of file diff --git a/.changes/xcframework b/.changes/xcframework deleted file mode 100644 index 2dd7063e0..000000000 --- a/.changes/xcframework +++ /dev/null @@ -1 +0,0 @@ -minor type="fixed" "Breaking change: Library evolution support (xcframework). May break existing `*Track` extensions." diff --git a/.version b/.version index 96d771776..f3ac133c5 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -2.8.1 \ No newline at end of file +2.9.0 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index ca90a57a9..5a26912ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [2.9.0] - 2025-10-20 + +### Added + +- Improved logging with the interface for custom loggers +- Add lastSpokeAt property to Participant +- Abstract token source for easier token fetching in production and faster integration with sandbox environment + +### Fixed + +- clamp response timeout in performRpc to minimal 1s +- Audio processing delegate lifecycle +- Byte stream MIME type defaulting to text/plain +- App extension compile issues +- Breaking change: Library evolution support (xcframework). May break existing `*Track` extensions. +- Serial operations cancellation semantics + ## [2.8.1] - 2025-10-02 ### Fixed diff --git a/LiveKitClient.podspec b/LiveKitClient.podspec index 8c6f416d0..b38387cd7 100644 --- a/LiveKitClient.podspec +++ b/LiveKitClient.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |spec| spec.name = "LiveKitClient" - spec.version = "2.8.1" + spec.version = "2.9.0" spec.summary = "LiveKit Swift Client SDK. Easily build live audio or video experiences into your mobile app, game or website." spec.homepage = "https://github.com/livekit/client-sdk-swift" spec.license = {:type => "Apache 2.0", :file => "LICENSE"} diff --git a/README.md b/README.md index d53cf693f..0375d1b19 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Add the dependency and also to your target let package = Package( ... dependencies: [ - .package(name: "LiveKit", url: "https://github.com/livekit/client-sdk-swift.git", .upToNextMajor("2.8.1")), + .package(name: "LiveKit", url: "https://github.com/livekit/client-sdk-swift.git", .upToNextMajor("2.9.0")), ], targets: [ .target( diff --git a/Sources/LiveKit/LiveKit.swift b/Sources/LiveKit/LiveKit.swift index 1054c1508..9d6c877fb 100644 --- a/Sources/LiveKit/LiveKit.swift +++ b/Sources/LiveKit/LiveKit.swift @@ -36,7 +36,7 @@ public class LiveKitSDK: NSObject, Loggable { override private init() {} @objc(sdkVersion) - public static let version = "2.8.1" + public static let version = "2.9.0" fileprivate struct State { var logger: Logger = OSLogger() @@ -54,6 +54,7 @@ public class LiveKitSDK: NSObject, Loggable { /// Adjust the minimum log level for the default `OSLogger` /// - Note: This method must be called before any other logging is done /// e.g. in the `App.init()` or `AppDelegate/SceneDelegate` + @objc public static func setLogLevel(_ level: LogLevel) { setLogger(OSLogger(minLevel: level)) } @@ -61,6 +62,7 @@ public class LiveKitSDK: NSObject, Loggable { /// Disable logging for the SDK /// - Note: This method must be called before any other logging is done /// e.g. in the `App.init()` or `AppDelegate/SceneDelegate` + @objc public static func disableLogging() { setLogger(DisabledLogger()) } diff --git a/Sources/LiveKit/Support/Logger.swift b/Sources/LiveKit/Support/Logger.swift index 5403b4932..4740dcd09 100644 --- a/Sources/LiveKit/Support/Logger.swift +++ b/Sources/LiveKit/Support/Logger.swift @@ -170,6 +170,7 @@ extension Loggable { // MARK: - Level +@objc @frozen public enum LogLevel: Int, Sendable, Comparable { case debug