Releases: ably/ably-cocoa
v1.2.8
Changes
Implemented enhancements:
- Rename
ARTDeviceTokenKey
toARTAPNSDeviceTokenKey
#1209 - Deprecation: Replace usages of deprecated kCCAlgorithmAES128 with kCCAlgorithmAES #1199
- Add support for remembered REST fallback host #815
- Ensure request method accepts UPDATE, PATCH & DELETE verbs #780
Fixed bugs:
- Calling state's machine activation callback upon push device details failure #1236
- Push device deregistration does not clear/ reset device details #1177
Closed issues:
- Check ability of using
ably-cocoa
in SwiftUI projects #1254 - Improve test file structure and naming #1203
- Run static analysis for builds in CI #1202
- Investigate how we might get rid of the Quick testing framework #1201
Merged pull requests:
- Fix/1177 full reset device details (RSH3g2a only) #1259 (maratal)
- Improve test file structure and naming #1252 (lawrence-forooghian)
- Treat warnings as errors across the codebase #1249 (lawrence-forooghian)
- Remove the Quick testing framework #1240 (lawrence-forooghian)
- Fix Carthage #3019 workaround for Xcode 13 #1235 (lawrence-forooghian)
- Feature/1209 device token key #1215 (maratal)
- Replaced deprecated kCCAlgorithmAES128 with kCCAlgorithmAES #1214 (maratal)
- Turned on static analyser after build #1213 (maratal)
Installation and Compatibility
For SPM, CocoaPods and Carthage see Installation Guide.
Ably.framework.zip
, attached to this release, was built with Xcode 13.2.1.
v1.2.7
Implemented enhancements:
- Stop base64-encoding authorization headers unnecessarily #1185
- Conflict with XAspect with
HAVE_CONFIG_H
macro #1161 - Blocks supplied as properties or method arguments should have typedef #1032
- Unused function warnings in xdelta3.x when Ably added via CocoaPods - Unused Entity Issue #1031
- Reduce library dependencies #949
- Improve error message for invalid state operations #843
- Finish implementing TI3 #760
- Update Stats fields with latest MessageTraffic types #732
- Address issues raised by Xcode’s static analyzer #694
- Quick Documentation: add headerdoc comments #298
Fixed bugs:
- Encrypt messages if a new ARTRealtimeChannelOptions or ARTChannelOptions containing cipher is set #1207
- Prebuilt
Ably.framework
frommake carthage_package
doesn't work in Xcode projects #1168 - Library version identifier invalid #900
- Check RTN15c3 implementation #847
- when using authUrl with authMethod=POST, authParams are sent JSON-encoded, not form-encoded #690
Closed issues:
- Add Swift Package Manager badges to README.md #1204
- NSSecureCoding NSObject bypasses security #1188
- Add Ably-cocoa swift package to Swift Package Index #1141
- App Store upload problem - non-public API use #1104
- Memory leak(s) when using event emitters #1099
- build warning - treating a forced downcast to 'ARTClientOptions' as optional will never produce 'nil' #1035
- Warnings about deprecations when used in a Mac Catalyst app #1003
- Possible race conditions in Test Suite #912
Merged pull requests:
- Fix
ARTChannel.setOptions
andARTRealtimeChannel.setOptions
: Recreate ARTDataEncoder on ARTChannel options update #1208 (lukasz-szyszkowski) - Add Swift Package Index badges #1205 (lukasz-szyszkowski)
- Fix/694 static analyser issues #1198 (maratal)
- Log message text fixed. #1197 (maratal)
- Removed optional base64 auth header #1195 (maratal)
- Fix/1188 Added allowed class for NSKeyedUnarchiver #1194 (maratal)
- Added Xcodebuild Logs uploading step #1192 (maratal)
- Make sure we all use the same version of Fastlane #1189 (lawrence-forooghian)
- Assure new secret to be created only together with the deviceId #1187 (maratal)
- Copied descriptions from ably.com/documentation/realtime/types #1176 (maratal)
- New stats fields #1175 (maratal)
- Reattaching channels in compliance with RTN15c3 #1172 (maratal)
- 1003 mac catalyst warnings #1171 (maratal)
- Documentation: Add link to example app, and clarify
ARTPushRegistererDelegate
usage #1170 (ben-xD) - Blocks typedef #1166 (maratal)
v1.2.6
Changes
Changelog
Full Changelog for this release
Merged pull requests:
Installation
Swift Package Manager
- For Xcode projects (e.g. iOS apps): Add
https://github.com/ably/ably-cocoa
to your project underSwift Packages
tab. - For Swift Packages (e.g. other libraries):
- In
dependencies: [...]
, add.package(url: "https://github.com/ably/ably-cocoa", from: "1.2.6")
, - In
target(dependencies: [...])
, add.product(name: "Ably", package: "ably-cocoa")
- In
Cocoapods, add the following to your Podfile
.
pod 'Ably', '1.2'
Carthage, follow Installing through Carthage
Imports
Objective-C
#import <Ably/Ably.h>
Swift
import Ably
Compatibility
- Carthage release for Swift is built with Xcode 12.5.1.
v1.2.5
Changes
Implemented enhancements:
- Add transportParams to ClientOptions #1112
- Implement RSC7d (Ably-Agent header) #1111
- Defaults: Generate environment fallbacks #1066
- Make
stateChange
nonnull? #1017 - Compile SocketRocket with main library #805
Fixed bugs:
- Memory leaks in the Realtime client #1129
- Token based authentication always results in 40101 Request mac does not match #1093
- Potentially insecure usage of the NSURLSession API #1079
- Incorrect import reference? #1072
Closed issues:
- Expose
device
property inARTRealtime.h
#1154 - Remove
ULID
dependency (replace usage withNSUUID
) #1127 - Implement ErrorInfo URLs to help debug issues #1125
- Carthage build for Nimble framework with deprecated linker flag -lswiftXCTest #1123
- Implement RSC15j (fallback host header) #1116
- Implement RSC15f (successful fallback host) #1115
- In last version, connecting to server takes too long time on old devices #1102
- Fail connection immediately if authorize() called and 403 returned #1078
Merged pull requests:
- Fix for potentially insecure usage of the NSURLSession API #1158 (maratal)
- 1017 state change nonnull #1156 (maratal)
- xcbkptlist removed #1155 (maratal)
- Move deviceSecret into ARTLocalDevice #1153 (ben-xD)
- Remove references to ULID in xcodeproj #1152 (maratal)
- Store succeed fallback host as default for 10 minutes (RSC15f) #1150 (lukasz-szyszkowski)
- Fix/1078 fail immediately on 403 #1149 (maratal)
- (RSC15j) Add
Host
header for fallback hosts. #1148 (lukasz-szyszkowski) - Extending ErrorInfo with
href
andrequestId
#1147 (lukasz-szyszkowski) - Add transport params to client options (RTC1f) #1142 (lukasz-szyszkowski)
- Swift Package Manager support #1136 (lukasz-szyszkowski)
- Real time client memory leaks fixes #1130 (lukasz-szyszkowski)
- Remove ULID dependency and replace usage with NSUUID #1128 (ben-xD)
- Fix for deprecated linker flag for Nimble framework #1124 (lukasz-szyszkowski)
- Ably-Agent Header #1119 (maratal)
- Environment fallback hosts #1113 (ricardopereira)
- Accept authURL response with timestamp argument as string #1097 (ricardopereira)
Installation
Swift Package Manager
- For Xcode projects (e.g. iOS apps): Add
https://github.com/ably/ably-cocoa
to your project underSwift Packages
tab. - For Swift Packages (e.g. other libraries):
- In
dependencies: [...]
, add.package(url: "https://github.com/ably/ably-cocoa", from: "1.2.5")
, - In
target(dependencies: [...])
, add.product(name: "Ably", package: "ably-cocoa")
- In
Cocoapods, add the following to your Podfile
.
pod 'Ably', '1.2.5'
Carthage, follow Installing through Carthage
Imports
Objective-C
#import <Ably/Ably.h>
Swift
import Ably
Compatibility
- Carthage release for Swift is built with Xcode 12.5.1.
v1.2.4
Changes
Fixed bugs:
- Common crash related to websocket failing with error #1083, fixed by adding a
nil
-pointer check in #1098 (mikepulaski) - Fix of
RSH3a2a1
implementation when the clientId doesn't change #1107 (ricardopereira) - [not conforming to
RTL2g
]realtime#close
emits detached event on an already detached channel #1088, fixed by #1091 (ricardopereira)
Enhancements:
- Compliance with
RSL1m1
spec - Message should fillclientId
, if unavailable, from Rest/Realtime instance #1108, implemented by addingX-Ably-ClientId
header to REST requests in #1110 (ricardopereira) - Update SocketRocket dependency to 0.5.2-ably-8 #1087 (lawrence-forooghian)
Versions
Podfile
pod 'Ably', '1.2.4'
Cartfile
github "ably/ably-cocoa" == 1.2.4
Objective-C
#import <Ably/Ably.h>
Swift
import Ably
Compatibility
- Carthage release for Swift is built with Xcode 12.4.
v1.2.3
Bug Fix
Fixes issue: Publishing messages with authCallback
is broken after upgrading from 1.1.16 to 1.2.1 #1074.
Fixed by pull request: Fixes 40012 "Malformed message; invalid clientId" when message has no clientId and credentials can assume any clientId #1082 (ricardopereira)
Versions
Podfile
pod 'Ably', '1.2.3'
Cartfile
github "ably/ably-cocoa" == 1.2.3
Objective-C
#import <Ably/Ably.h>
Swift
import Ably
Compatibility
- Carthage release for Swift is built with Xcode 12.0.1.
v1.2.2
Highlights
Supports Build with Xcode 12
Fixes the Carthage build. Increases the minimum deployment target for iOS, from 8 to 9 (conflated in #1075).
New Push Notification Registration API for apps using the SwiftUI App Lifecycle
For new Swift-based apps created with Xcode 12, the default lifecycle is SwiftUI App.
This means that the previous approach we supported of conforming to ARTPushRegistererDelegate
on your UIApplicationDelegate
no longer works.
Going forward apps should use the pushRegistererDelegate
property on client options to supply this delegate (#1075).
Reduced Dependencies
We've removed both KSCrash (#1073) and SAMKeychain (#1067).
In Cocoa there is no effective way to catch selectively only those exceptions that occur within the library, and the attempt to do that using KCrash was interfering with app developers' own exception handling. Our advice is that app developers incorporate their own application-wide exception handling and crash reporting.
Fixed issues:
- Deadlock getting ARTRealtimeChannel between two dispatch_sync (ui queue vs ably main queue) #1029
- Push Notification Registration via
ARTPushRegistererDelegate
don't work in iOS 14 when instantiated via @UIApplicationDelegateAdaptor #1069 - Conflict KSCrashAblyFork #1068
Merged pull requests:
- Support ARTPushRegistererDelegate on iOS 14 #1075 (QuintinWillison)
- Remove KSCrash and unhandled exception handlers #1073 (QuintinWillison)
- Remove SAMKeychain dependency and use internal solution #1067 (ricardopereira)
- Fix Push State Machine delegate syncing the main queue #1064 (ricardopereira)
- Add
use\_frameworks!
recommendation #1061 (kavalerov) - Correct CocoaPods instruction #1060 (kavalerov)
- Bump protocol version to 1.2 #1058 (QuintinWillison)
- Fix some
waitUntil
error "expects its completion closure to be only called once" #1028 (ricardopereira)
Versions
Podfile
pod 'Ably', '1.2.2'
Cartfile
github "ably/ably-cocoa" == 1.2.2
Objective-C
#import <Ably/Ably.h>
Swift
import Ably
Compatibility
- Carthage release for Swift is built with Xcode 12.0.1.
v1.2.1
Fixes issues in our uncaught exception handling code:
- Fix Data race in ARTstartHandlingUncaughtExceptions #1030
- Merge Improve unhandled exception handling code #1056 (QuintinWillison)
Also some improvements to our test suite:
- Fix Flaky test: message receiving order #977
- Merge Test suite: fix lib version #1026 (ricardopereira)
- Merge Should not wait for AblyTest.options in 'context' scope #1023 (ricardopereira)
- Merge Fix 977 #1022 (ricardopereira)
Versions
Podfile
pod 'Ably', '1.2.1'
Cartfile
github "ably/ably-cocoa" == 1.2.1
Objective-C
#import <Ably/Ably.h>
Swift
import Ably
Compatibility
- Carthage release for Swift is built with Xcode 11.3.1.
v1.2.0
Adds the capability to subscribe to a channel in delta mode.
Subscribing to a channel in delta mode enables delta compression. This is a way for a client to subscribe to a channel so that message payloads sent contain only the difference (ie the delta) between the present message and the previous message on the channel.
Versions
Podfile
pod 'Ably', '1.2.0'
Cartfile
github "ably/ably-cocoa" == 1.2.0
Objective-C
#import <Ably/Ably.h>
Swift
import Ably
Compatibility
- Carthage release for Swift is built with Xcode 11.3.1.
v1.1.23
Changes
Implemented enhancements:
- Remove queueing messages in a channel-level queue #894
Fixed bugs:
- lib fails all the user's channels on transition to connecting/disconnected if queueMessages is disabled? #1004
Closed issues:
- Implement push spec update ably/docs#710 #876
Merged pull requests:
- Refine release procedure #1014 (QuintinWillison)
- Fix 'queueMessages' expected behaviour #1005 (ricardopereira)
Versions
Podfile
pod 'Ably', '1.1.23'
Cartfile
github "ably/ably-cocoa" == 1.1.23
Objective-C
#import <Ably/Ably.h>
Swift
import Ably
Compatibility
- Carthage release for Swift is built with Xcode 11.3.1.