---
title: Ditto v2 for Swift
slug: v4-4/QdAOrquYFraFzWRILJ6XP
docTags: 
createdAt: 2023-08-22T18:45:40.064Z
---

`swift` `ios` `updates` `version` `changelog`&#x20;

***

# DittoSwift Version 2.1.0

:::Changelog{title="Released: Wed Nov 2nd 2022, 4:51 pm"}
::ChangelogItem{type="improved" description="Deprecated: observe() and observeWithNextSignal() methods of DittoPendingCollectionsOperation, DittoPendingCursorOperation and DittoPendingIDSpecificOperation. Please use the corresponding observeLocal(deliverOn:eventHandler:) and observeLocalWithNextSignal(deliverOn:eventHandler:) variants along with a separate call tosubscribe() instead. "}
:::

:::CodeblockTabs
installation

```none
pod 'DittoSwift', '=2.1.0'
```
:::

# DittoSwift Version 2.0.8

:::Changelog{title="Released: Thu Oct 27th 2022, 5:14 pm"}
::ChangelogItem{type="added" description="Installation: pod 'DittoSwift', '=2.0.8'"}
:::

:::CodeblockTabs
installation

```none
pod 'DittoSwift', '=2.0.8'
```
:::

# DittoSwift Version 2.0.7

:::Changelog{title="Released: Thu Sep 22nd 2022, 8:02 pm"}
::ChangelogItem{type="improved" description="Changed: New lock file ensures we have only 1 SDK instance per working dir"}

::ChangelogItem{type="fixed" description="Removed: Bitcode is no longer embedded in the Ditto SDK as use of this technology has been deprecated by Apple."}

::ChangelogItem{type="fixed" description="Fixed: Swift package manifest is now updated on the"}

::ChangelogItem{type="fixed" description="Fixed: Reduced the amount of disk space used by sync metadata by up to 50% in some cases"}
:::

:::CodeblockTabs
installation

```none
pod 'DittoSwift', '=2.0.7'
```
:::

# DittoSwift Version 2.0.6

:::Changelog{title="Released: Thu Sep 15, 2022, 4:46 pm"}
::ChangelogItem{type="fixed" description="Fixed: Ensure Ditto internal auth client is shut down correctly when it's no longer needed"}

::ChangelogItem{type="fixed" description="Fixed: The SwiftPM .zip artifact included an unintended .swiftsourceinfo file which causes mismatched versions of the Swift toolchain to cause errors. CocoaPods artifacts were unaffected."}
:::

:::CodeblockTabs
installation

```none
pod 'DittoSwift', '=2.0.6'
```
:::

# DittoSwift Version 2.0.5

:::Changelog{title="Released: Thu Sep 8, 2022, 3:20 pm"}
::ChangelogItem{type="fixed" description="Fixed: a very rare deadlock when starting sync immediately after creating the Ditto instance."}
:::

:::CodeblockTabs
installation

```none
pod 'DittoSwift', '=2.0.5'
```
:::

# DittoSwift Version 2.0.4

:::Changelog{title="Released: Thu Sep 1, 2022, 11:31 am"}
::ChangelogItem{type="added" description="Synchronized version bump release"}
:::

:::CodeblockTabs
installation

```none
pod 'DittoSwift', '=2.0.4'
```
:::

# DittoSwift Version 2.0.3

:::Changelog{title="Released: Wed Aug 31, 2022, 10:20 am"}
::ChangelogItem{type="fixed" description="Fixed: rare crash due to a race condition within Ditto's Bluetooth subsystem."}

::ChangelogItem{type="improved" description="Changed: presence data is no longer synced with the big peer."}
:::

:::CodeblockTabs
installation

```none
pod 'DittoSwift', '=2.0.3'
```
:::

# DittoSwift Version 2.0.2

:::Changelog{title="Released: Fri Aug 26, 2022, 6:58 pm"}
::ChangelogItem{type="added" description="Added: method cancel() to DittoSubscription allowing explicit canceling of a subscription."}

::ChangelogItem{type="fixed" description="Fixed: memory leak, observer objects returned by observeStatus() of DittoAuthenticator were never deallocated."}

::ChangelogItem{type="fixed" description="Fixed: Reduced size of DittoSwift framework"}

::ChangelogItem{type="improved" description="Changed: performing an .exec() call, outside the scope of a store.write { } block, no longer tries to obtain a write transaction and instead uses a read transaction."}
:::

:::CodeblockTabs
installation

```none
pod 'DittoSwift', '=2.0.2'
```
:::

# DittoSwift Version 2.0.1

:::Changelog{title="Released: Sat Aug 13, 2022, 9:57 pm"}
::ChangelogItem{type="added" description="Synchronized version bump release"}
:::

:::CodeblockTabs
installation

```none
pod 'DittoSwift', '=2.0.1'
```
:::

# DittoSwift Version 2.0.0

:::Changelog{title="Released: Wed Aug 3, 2022, 7:54 am"}
::ChangelogItem{type="improved" description="Note: peers running 2.0.0 are able to sync with peers running at least version 1.1.8 of the SDK."}

::ChangelogItem{type="added" description="Added: support for explicitly typing values as registers. This is via 2 new types: DittoRegister and DittoMutableRegister, and new registerValue value accessors added to DittoDocumentPath and DittoMutableDocumentPath."}

::ChangelogItem{type="added" description="Added: DittoCounter and DittoMutableCounter types resembling the CRDT type underneath, which replace the old counter mechanics. A new counter value accessor has been added to DittoDocumentPath and DittoMutableDocumentPath, which returns a DittoCounter or a DittoMutableCounter respectively, if one is present at the document path specified."}

::ChangelogItem{type="added" description="Added: support for accessing and creating RGAs (Replicated Growable Arrays), which was the default CRDT type for arrays in Ditto v1. There are 2 new types: DittoRGA and DittoMutableRGA in v2, and new rga value accessors added to DittoDocumentPath and DittoMutableDocumentPath. Note that these are deprecated though and arrays should instead be used in registers (which is now the default)."}

::ChangelogItem{type="improved" description="Changed: arrays now default to being Register arrays. This means that when you want to update a property in a document that's an array you need to set the whole value as the new array. You can't perform mutating operations on an array in a document other than to fully replace it."}

::ChangelogItem{type="added" description="Added: value accessor properties have been added to DittoDocumentID: value, string{Value}, bool{Value}, int{Value}, uint{Value}, float{Value}, double{Value}, array{Value}, dictionary{Value}."}

::ChangelogItem{type="improved" description="Changed: the keys DittoAccessLicense and DittoLicenseToken in Info.plist will now fail with a fatal error instead of logging a deprecation warning. Please use the key DittoOfflineOnlyLicenseToken instead."}

::ChangelogItem{type="improved" description="Changed: renamed identity onlinePlaygroundV2 to just onlinePlayground, which replaces the previously deprecated onlinePlayground."}

::ChangelogItem{type="improved" description="Changed: renamed Ditto method tryStartSync() to just startSync(), which replaces the previously deprecated startSync()."}

::ChangelogItem{type="improved" description="Removed: deprecated DittoRemotePeerV2 property meshRole, please queryOverlapGroup instead."}

::ChangelogItem{type="improved" description="Removed: deprecated type DittoPeersObserver, please use DittoObserver instead."}

::ChangelogItem{type="improved" description="Removed: deprecated DittoDocumentID method toNative(), please use property value instead."}

::ChangelogItem{type="improved" description="Removed: deprecated DittoScopedWriteTransaction method find(query:), please use find() instead."}

::ChangelogItem{type="improved" description="Removed: deprecated DittoScopedWriteTransaction methods insert() and insertWithStrategy(), please use upsert() and upsertWithStrategy() instead."}

::ChangelogItem{type="improved" description="Removed: deprecated DittoCollection methods insert() and insertWithStrategy(), please use upsert() and upsertWithStrategy() instead."}

::ChangelogItem{type="improved" description="Removed: deprecated identities development and online, please use the available ones instead."}

::ChangelogItem{type="improved" description="Removed: deprecated Ditto methods setAccessLicense() and setLicenseToken(), please use setOfflineOnlyLicenseToken() instead."}

::ChangelogItem{type="improved" description="Removed: deprecated Ditto method setTransportConfig(), please set the transportConfig property directly."}

::ChangelogItem{type="improved" description="Removed: deprecated DittoAuthenticator method isAuthenticated() and property userID, please use status instead."}

::ChangelogItem{type="improved" description="Removed: DittoWriteStrategy.overwrite."}
:::

:::CodeblockTabs
installation

```none
pod 'DittoSwift', '=2.0.0'
```
:::

# DittoSwift Version 2.0.0-alpha1

:::Changelog{title="Released: Wed Jul 20, 2022, 4:55 am"}
::ChangelogItem{type="added" description="This is a preview release of Ditto v2. Full changelog will be provided with the official release."}
:::

:::CodeblockTabs
installation

```none
pod 'DittoSwift', '=2.0.0-alpha1'
```
:::

