diff --git a/AblyChat.xcworkspace/xcshareddata/swiftpm/Package.resolved b/AblyChat.xcworkspace/xcshareddata/swiftpm/Package.resolved index 9cffb1ec..74c3fc81 100644 --- a/AblyChat.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/AblyChat.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,13 +1,13 @@ { - "originHash" : "fcc346d6fe86e610ac200cdbbf91c56204df67286546d5079bd9c610ee65953b", + "originHash" : "6a8d15fb1d326ac6e8a40c286c152332146d6f58c73123cb8083f68d483dd728", "pins" : [ { "identity" : "ably-cocoa", "kind" : "remoteSourceControl", "location" : "https://github.com/ably/ably-cocoa", "state" : { - "revision" : "7f639c609e50053abd4590f34333f9472645558a", - "version" : "1.2.33" + "branch" : "main", + "revision" : "ccca241a8a7f08b22a93802161460c843d9b5bf3" } }, { diff --git a/Example/AblyChatExample/Mocks/MockRealtime.swift b/Example/AblyChatExample/Mocks/MockRealtime.swift index 067e8f69..0d3d48c1 100644 --- a/Example/AblyChatExample/Mocks/MockRealtime.swift +++ b/Example/AblyChatExample/Mocks/MockRealtime.swift @@ -3,6 +3,10 @@ import AblyChat /// A mock implementation of `RealtimeClientProtocol`. It only exists so that we can construct an instance of `DefaultChatClient` without needing to create a proper `ARTRealtime` instance (which we can’t yet do because we don’t have a method for inserting an API key into the example app). TODO remove this once we start building the example app final class MockRealtime: NSObject, RealtimeClientProtocol, Sendable { + func request(_: String, path _: String, params _: [String: String]?, body _: Any?, headers _: [String: String]?, callback _: @escaping ARTHTTPPaginatedCallback) throws { + fatalError("Not implemented") + } + var device: ARTLocalDevice { fatalError("Not implemented") } @@ -32,6 +36,10 @@ final class MockRealtime: NSObject, RealtimeClientProtocol, Sendable { } final class Channel: RealtimeChannelProtocol { + var properties: ARTChannelProperties { + fatalError("Not implemented") + } + var state: ARTRealtimeChannelState { fatalError("Not implemented") } diff --git a/Package.resolved b/Package.resolved index 9cffb1ec..03ddbb80 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,13 +1,13 @@ { - "originHash" : "fcc346d6fe86e610ac200cdbbf91c56204df67286546d5079bd9c610ee65953b", + "originHash" : "db24f2979451a46f504f45d35893eb8501f27488ae70e1412340139a0e7551e2", "pins" : [ { "identity" : "ably-cocoa", "kind" : "remoteSourceControl", "location" : "https://github.com/ably/ably-cocoa", "state" : { - "revision" : "7f639c609e50053abd4590f34333f9472645558a", - "version" : "1.2.33" + "branch" : "main", + "revision" : "ccca241a8a7f08b22a93802161460c843d9b5bf3" } }, { diff --git a/Package.swift b/Package.swift index fc233cd2..14f5e281 100644 --- a/Package.swift +++ b/Package.swift @@ -20,7 +20,8 @@ let package = Package( dependencies: [ .package( url: "https://github.com/ably/ably-cocoa", - from: "1.2.0" + // TODO: Switch back to using a tag (https://github.com/ably-labs/ably-chat-swift/issues/80) + branch: "main" ), .package( url: "https://github.com/apple/swift-argument-parser", diff --git a/Sources/AblyChat/AblyCocoaExtensions/Ably+Dependencies.swift b/Sources/AblyChat/AblyCocoaExtensions/Ably+Dependencies.swift index b193a9fe..ae17fde3 100644 --- a/Sources/AblyChat/AblyCocoaExtensions/Ably+Dependencies.swift +++ b/Sources/AblyChat/AblyCocoaExtensions/Ably+Dependencies.swift @@ -1,10 +1,7 @@ import Ably -// TODO: remove "@unchecked Sendable" once https://github.com/ably/ably-cocoa/issues/1962 done +extension ARTRealtime: RealtimeClientProtocol {} -// This @retroactive is needed to silence the Swift 6 compiler error "extension declares a conformance of imported type 'ARTRealtimeChannels' to imported protocol 'Sendable'; this will not behave correctly if the owners of 'Ably' introduce this conformance in the future (…) add '@retroactive' to silence this warning". I don’t fully understand the implications of this but don’t really mind since both libraries are in our control. -extension ARTRealtime: RealtimeClientProtocol, @retroactive @unchecked Sendable {} +extension ARTRealtimeChannels: RealtimeChannelsProtocol {} -extension ARTRealtimeChannels: RealtimeChannelsProtocol, @retroactive @unchecked Sendable {} - -extension ARTRealtimeChannel: RealtimeChannelProtocol, @retroactive @unchecked Sendable {} +extension ARTRealtimeChannel: RealtimeChannelProtocol {}