Skip to content

Releases: TelemetryDeck/SwiftSDK

2.1.0

02 Jun 22:03
Compare
Choose a tag to compare

This release adds the convenience methods mentioned in the new Purchases Preset and Errors Preset doc articles.

What's Changed

  • Add convenience methods & types for sending error & purchase preset signals by @Jeehut in #154

Full Changelog: 2.0.0...2.1.0

2.0.0

23 May 20:53
0c5dcdd
Compare
Choose a tag to compare

While there are no source-breaking changes in this 2.0 release, we deprecated a couple of APIs as we decided to streamline the naming conventions within our first SDK for a more consistent and clear future. You should be able to upgrade to 2.0 without any build errors, and the deprecation warnings & fix-its should guide you to be prepared for the future of TelemetryDeck!

To upgrade, you need to explicitly change the version specifier to 2.0.0 < 3.0.0 in your projects "Package Dependencies" settings.

This release represents the "Grand Rename" of this SDK, which doesn't end with the API calls, but the very GitHub repository itself was renamed from "SwiftClient" to "SwiftSDK" to be consistent with all our other SDKs. Thanks to GitHub redirections, your projects should not be affected by this change.

Most notably, the following APIs were renamed:

  1. TelemetryManager.send("A", with: ["a": "b"]) is now TelemetryDeck.signal("A", parameters: ["a": "b"])
  2. The optional for parameter to override the user ID was renamed to customUserID to be more clear
  3. TelemetryManager.initialize(with:) is now TelemetryDeck.initialize(config:) (fix-it available)
  4. TelemetryManagerConfiguration was renamed to TelemetryDeck.Config (without warnings)
  5. import TelemetryClient was renamed import TelemetryDeck, but you need to link TelemetryDeck to your project to switch

The Swift Setup Guide was updated accordingly.

We also renamed our existing parameters, but with a thoughtful approach that won't break any existing insights (we are still sending the old names). Most notably, all new parameters are now namespaced with TelemetryDeck. so there can be no name clash with your custom parameters. New useful parameters were introduced as well, such as TelemetryDeck.UserPreference.language which gives you the language the user has set as their preference on their device, so you can learn which new languages you might want to support.

See our Grand Rename article for a full list of new parameters and a table of old & new names.

What's Changed

  • New force-sync method (load-capped) to track bad experiences that might lead users to leave/delete app (improved churn tracking) by @Jeehut in #136
  • [TelemetryManager] Replace fatalError With assertionFailure by @nickkohrn in #146
  • Make it easier to check for appLanguage, preferredLanguage, and region + grand rename by @Jeehut in #153

Full Changelog: 1.5.1...2.0.0

Version 1.5.1

11 Jan 15:51
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.5.0...1.5.1

Version 1.5.0

27 Nov 20:12
Compare
Choose a tag to compare

This release prepares us for iOS 17, improves privacy, and improves VisionOS compatibility. Thanks a lot to our wonderful contributors <3

What's Changed

New Contributors

Full Changelog: 1.4.4...1.5.0

Version 1.4.4

26 Jun 12:49
Compare
Choose a tag to compare

This version adds a lot of small improvements by our amazing customers and supporters. It also correctly detect's Apple's visionOS running on the Vision Pro Simulator (we can't test it on actual hardware yet).

What's Changed

New Contributors

Full Changelog: 1.4.3...1.4.4

Version 1.4.3

21 Feb 08:50
cb34730
Compare
Choose a tag to compare

This version adds support for integrating TelemetryDeck via CocoaPods, for projects who prefer CocoaPods over Swift Package Manager.

Thanks a lot to @chrisvasselli for the contribution!

What's Changed

New Contributors

Full Changelog: 1.4.2...1.5.0

Version 1.4.2

05 Feb 13:37
Compare
Choose a tag to compare

This version fixes a bug #88 that made it so the isAppStore property would always be reported as false.

If you're filtering for isAppStore, a way around that is to add an "and" filter containing a "not isSimulator = true" and a "not isTestFlight = true".

Version 1.4.1

16 Jan 09:43
f87b6b0
Compare
Choose a tag to compare

This bugfix update fixes a crash due to objects being released too early. Thanks a lot to @andreyz for the contribution!

What's Changed

  • Update Xcode version in CI by @winsmith in #86
  • Avoid runtime exception due to deallocated unowned self by @andreyz in #84

New Contributors

Full Changelog: 1.4.0...1.4.1

Version 1.4.0

29 Dec 15:54
685264f
Compare
Choose a tag to compare

This version adds support for sending numerical values in Signals via the new floatValue property. Any signal you send can have one floatValue (which, annoyingly, maps to a Double type in Swift). On the server, you'll be able to aggregate, min, max and average these values.

What's Changed

Version 1.3.0

12 Dec 17:43
Compare
Choose a tag to compare

What's Changed

  • Use a self-generated UUID as default ID on macOS + add tvOS support by @Jeehut in #71
  • Ensure not to make SwiftUI previews crash due to missing init call by @Jeehut in #74
  • Implement analyticsDisabled to allow an opt out of analytics by @kimar in #76
  • Add Objective-C support by @winsmith in #79

New Contributors

Full Changelog: 1.2.0...1.3.0