Skip to content

Releases: couchbase/couchbase-lite-ios

2.0 Developer Build 1

14 Feb 03:51
Compare
Choose a tag to compare
2.0 Developer Build 1 Pre-release
Pre-release

2.0 DB1 includes the following features:

  • CRUD operations
  • Document with property type accessors
  • Blob data type
  • Database and Document Change Notification
  • Query
    • NSPredicate based API
    • Grouping and Aggregation support

1.3.1

13 Sep 15:34
Compare
Choose a tag to compare

As part of this release we had 47 commits which resulted in 7 issues being closed.
Incremental update for 1.3.

Performance Improvements

  • #1379 ForestDB update_seq on view query less than db's update_seq

Enhancements

  • #1400 Support for _oidc_refresh response without ID token

Bugs

  • #1369 PSWebSocket crash iOS 10
  • #1379 ForestDB update_seq on view query less than db's update_seq
  • #1387 TvOS Unit Test Build has a lot of warnings
  • #1392 When OIDC Refresh token failed, there is no replication change notification sent.
  • #1403 CBLSocketChangeTracker endless loop of JSON Parsing Errors
  • #1406 Encryption is a no-op with the system libsqlite3 on macOS 12

Where to get it

You can download this release from Couchbase.com

1.3

05 Jul 21:11
Compare
Choose a tag to compare
1.3

As part of this release we had 59 issues closed.
This is a feature release, with a focus on performance. Noteworthy changes:

  • Support for OpenID Connect authentication, so you can log into Sync Gateway using a 3rd-party identity like a Google or Yahoo ID.
  • Timed expiration of documents can help keep your database from growing indefinitely.
  • Better performance with docs that have many revisions. Replication is faster, and older revisions are now automatically cleaned up in SQLite storage.
  • Optimized redisplay of UITableViews when using CBLUITableController.
  • Clearer error messages and better logging.
  • And of course many smaller optimizations, and lots of bug fixes.

Performance Improvements

  • #1114 LiveQuery shouldn't re-run query if view index didn't change
  • #1150 Optimize & animate CBLUITableController by using the Levenshtein algorithm
  • #1165 Incrementally purge oldest revisions in SQLite databases
  • #1242 Fix inefficiencies replicating docs with many revisions
  • #1340 Optimized multipart download performance

Enhancements

  • #394 Start using NSURLSession in the replicator
  • #984 Comparing CBLQuery objects
  • #1100 External property on kCBLDatabaseChangeNotification when CBL is remote
  • #1107 Logging overhaul
  • #1117 Redact passwords/tokens in URLs in log messages
  • #1118 API: Public method for inserting existing revisions (putExistingRevisionWithProperties:...)
  • #1148 API: Make -[View updateIndex] public; add async version
  • #1150 Optimize & animate CBLUITableController by using the Levenshtein algorithm
  • #1165 Incrementally purge oldest revisions in SQLite databases
  • #1181 API: Document expiration time (TTL)
  • #1201 Replicator should immediately fail if URL path is invalid
  • #1245 Expose server error messages in NSErrors from public API
  • #1266 OpenID Connect authenticator
  • #1271 Disable App Transport Security on Mac OSX LiteServ
  • #1291 Allow configuring revs_limit in LiteServ
  • #1334 Scope cookie storage by database, not by replication

Bugs

  • #641 Enumerate sequence in descending order in CBForest not working
  • #966 CBLIS : Data loss
  • #1005 Replication fails without starting on wifi if network depends on a proxy
  • #1015 Crash when [CBLRemoteRequest connection:didFailWithError:]
  • #1045 POST _bulk_docs does not support HTTPBodyStream
  • #1071 [Testfest] Items not showing up in offline mode
  • #1085 CBLIS : NSIncrementalStore accessed by multiple context dispatch queues
  • #1095 Obsolete rows left in view index when documentType is used (1.1.1)
  • #1106 CBLListener readOnly property prevents pulls from updating the database
  • #1120 Warn if map function calls emit(nil, ...)
  • #1124 Multipart Uploader cannot upload the attachment when using basic auth
  • #1128 Crash pushing docs with non-downloaded attachments
  • #1129 CBLIS: NSSet was mutated while being enumerated.
  • #1131 CBLVersion() incorrectly returns "(unofficial)" in official releases
  • #1132 CBLReplicator.isDocumentPending is inaccurate when replicator is offline
  • #1138 Continuous puller with WebSocket not responding with 401 error when changing password
  • #1139 ChangeTracker POST request are incompatible with CouchDB
  • #1143 Swift API glitches
  • #1152 CBLRestReplicator does not properly end bgTask when app is foregrounded
  • #1163 Fixed macOS 10.10 dependency & updated deployment version to 10.9
  • #1180 Doc can be saved with missing attachment file, leading to errors
  • #1188 CBForest bad memory access while purging doc
  • #1191 Liteserv crashes with Forestdb option when creating local docs after delete operation
  • #1192 Manual compaction returns error if auto-compact is already running
  • #1200 Replication rejects attachments generated by PouchDB with revpos:0
  • #1216 REST API: POST /_replicate can start/stop once, but not restart?
  • #1228 One-shot push from empty db never stops
  • #1233 Failure to encrypt SQLite database when using WAL journaling
  • #1260 Inconsistent response when no conflicts are present and ?conflicts=true
  • #1263 Incorrect "error" property in REST response for GET of deleted doc
  • #1274 PendingDocumentIDs is incorrect
  • #1279 Don't stop replicator if one doc gets an error
  • #1292 _replicate between 2 dbs on same LiteServ fails
  • #1323 Cannot push encrypted attachments when testing with ToDoLite
  • #1325 LiteServ crash when delete dbs asyncronously
  • #1327 Archive build is missing symbols in iOS frameworks
  • #1335 Database upgrades from 1.1 not copying "content_type" of attachments
  • #1348 OIDC tokens in Keychain should be per-database
  • #1362 App crashing on iOS 8.3 device
  • #1370 TodoLite showing wrong list when deleting tasks

Where to get it

You can download this release from Couchbase.com

1.2.1

03 Jul 18:15
Compare
Choose a tag to compare

As part of this release we had 196 commits which resulted in 10 issues being closed.
Couchbase Lite for iOS 1.2.1 is a patch release.

Performance Improvements

  • #1017 Possible p2p memory leak
  • #1127 Replicator isn't including Authorization: header in requests, so it gets unnecessary 401s

Enhancements

  • #1078 Check for empty database before using active_only

Bugs

  • #1006 MYUtilites function beginBackgroundTaskNamed: crash when app goes to background twice while replicating
  • #1017 Possible p2p memory leak
  • #1048 Couchbase lite iOS binary has enable_bitcode' flag disabled
  • #1101 Couchbase Lite thread stuck on GZIP operation
  • #1127 Replicator isn't including Authorization: header in requests, so it gets unnecessary 401s
  • #1140 Continuous WebSocket puller crashes when receiving changes after changing user's password
  • #1153 Carthage build not working as suggested
  • #1168 Listener basic auth not being evaluated when syncing over SSL.

Where to get it

You can download this release from Couchbase.com

1.2.0

03 Jul 18:16
Compare
Choose a tag to compare

As part of this release we had 537 commits which resulted in 92 issues being closed.
This release features a number of enhancements and bug fixes, including:

  • Improved ForestDB Storage Engine (Developer Preview) - Our developer preview for the ForestDB storage engine saw a number of major code improvements under the hood.
  • Improved database encryption - AES-256 on-disk encryption with your choice of provided storage library: SQLCipher or ForestDB
  • CBL Incremental Store improvements - Your CoreData apps benefit from significant performance improvements and bug fixes.

The list goes on, including better P2P support, replication speed-ups, AppleTV compatibility, and more!

Performance Improvements

  • #726 CBLListener.readOnly=YES prevents clients from storing checkpoints
  • #733 Peer replication checkpoints are lost if its hostname or port changes
  • #858 Attachment downloads should be resumeable
  • #860 Ignore redundant attachment downloads
  • #922 No auto-compact (db.forest getting very large)
  • #926 Enable HTTP compression for _changes feed requests (non-continuous)
  • #927 Compression for _changes feed requests (continuous)
  • #938 CBLIS - Very poor performances from 5000 documents locally
  • #960 CBLIS - Improve relationship cache invalidation
  • #972 ForestDB-based view indexes don't auto-compact
  • #991 Verify that ForestDB store's allDocs query is actually faster than SQLite store's allDocs
  • #1046 CBLLiveQuery notification throttling too aggressive by default

Enhancements

  • #73 Disallow leading "_" in attachment name (for compatibility)
  • #79 Deferred attachment download
  • #82 Add SSL client cert support to replicator
  • #485 ForestDB: Reimplement geo-queries
  • #652 Add CBLJSViewCompiler to the framework
  • #702 Integrate new replicator
  • #729 Allow validations to distinguish local from remote changes
  • #806 Add "_conflicts" property to doc in map function when doc is in conflict
  • #808 Expose totalRows from CBLView to developers
  • #826 ForestDB: Implement database encryption
  • #836 Allow adding/removing db encryption, or changing the key
  • #858 Attachment downloads should be resumeable
  • #859 Attachment downloads should be more fault tolerant
  • #870 Migrating SQLite db to ForestDB
  • #879 Need a purge method from CoreData with CBLIncrementalStore
  • #918 Build for tvOS (AppleTV)
  • #926 Enable HTTP compression for _changes feed requests (non-continuous)
  • #927 Compression for _changes feed requests (continuous)
  • #928 Add Carthage support
  • #950 Update CouchbaseLiteViewer
  • #960 CBLIS - Improve relationship cache invalidation
  • #970 Add official openDatabase API for encryption/storage options
  • #976 Package a SQLCipher binary with our storage engine
  • #1029 Set custom user agent on HTTP Requests
  • #1052 Optimize first-time sync

Bugs

  • #648 CBLModel has trouble with dynamic properties in Swift classes
  • #649 Attachment crash (CBL_BlobStoreWriter's initializer failed?)
  • #671 "_removed" properties received from SG cause errors pushing to another server
  • #681 Migrate v1.1.0 database file to cblite2 file structure
  • #683 All-docs queries ignore prefixMatchLevel property
  • #686 The bg replication server's database not getting closed
  • #695 Revise replaceDatabase signature and backward db support
  • #698 CBLReplicator could still be in the running status after closing the database
  • #728 Checkpoint ID shared by distinct pull replications
  • #733 Peer replication checkpoints are lost if its hostname or port changes
  • #800 "Unexpected CBForest exception iterating query"
  • #805 Crash after receiving 401 error from CBLReplication (ASSERTION FAILED: storage)
  • #807 CBLReplication.pendingDocIDs doesn't update while replicator not running
  • #838 Implement readOnly mode in CBLSyncListener
  • #841 Assertion failure when using invalid username/password with replication
  • #843 CBLDatabase not getting attachments from ancestry when processing attachments
  • #857 Cannot get result using CBLQueryBuilder with NSSortDescriptor
  • #877 Listener throws warnings even though there is no error
  • #889 Query builder can't index on descending sort descriptors
  • #892 Query.sortDescriptors doesn't gives expected result when '-limit' is applied.
  • #893 Query.postFilter with limit gives limit+1 results.
  • #895 Pusher doesn't send non-winning deletion replications (ForestDB)
  • #899 WARNING: Unexpected CBForest exception iterating query
  • #900 401 status from server not being propagated to CBLReplication.lastError
  • #901 -[ListenerHTTP_Tests test03_ReadOnly] fails in iOS 9 simulator
  • #903 Problem with relationship one-to-many when documents are created simultaneously on multiple devices
  • #908 ForestDB queries wrong key range for descending=true and prefixMatch
  • #909 New model objects created with +modelForDocument should set isNew flag to true
  • #917 CBL returns NO with no error when attempting to encrypt an SQLite database
  • #921 CBLQueryBuilder: Sorted property disappears from _valueTemplate (select)
  • #922 No auto-compact (db.forest getting very large)
  • #925 Crash in processing CBLIS changes when document has no type
  • #938 CBLIS - Very poor performances from 5000 documents locally
  • [#942](https://github.com/couchbase/couchbase-lit...
Read more

1.1.1

10 Nov 21:29
Compare
Choose a tag to compare

As part of this release we had 268 commits which resulted in 35 issues being closed.
Small bug-fix update to 1.1

Performance

  • #793 CBLIS - Slow down UI thread when saving CoreData context

Enhancements

  • #834 Use NS_UNAVAILABLE attribute to mark -init as unavailable in API classes
  • #833 Removed long-deprecated facebook/persona auth API in CBLReplication
  • #832 Use parameterized (generic-ized) NSArray/NSDictionary in public APIs
  • #803 400 bad_request for view query with stale is false parameter

Bugs

  • #829 Fix for push replicator loading all doc bodies, with ForestDB
  • #828 Fixed unintentional 100ms delay sending multipart HTTP bodies
  • #827 Send mismatched MIME multipart boundary strings on HTTP retry
  • #817 Replication Push (to CouchDB) is failing when attachments are involved
  • #815 ChangeTracker SSL settings incompatible with iOS 9 Transport Security
  • #809 CBLManager.storageType is not in public header, despite being documented in wiki
  • #802 Failed to write revision with attachment
  • #788 CBL_BlobStore temp directories don't get cleaned up, can overflow
  • #786 Warning replicating attachments from CouchDB
  • #782 CBLIS - Cannot nullify nullable attributes and relationships
  • #781 ForestDB: Crash when query with non existent keys after reindex
  • #772 SSL error -9806 from P2P replication
  • #765 dateWithJSONObject: method cannot parse ISO 8601 dates with a time zone designator "+hhmm" or "-hhmm"
  • #763 CBLIS - Cannot nullify NSData property
  • #759 Reference to -queryAllDocuments in CBLQuery.h documentation
  • #758 CBL 1.1 Mac: Stopping continuous replication consistently triggers timeout warning
  • #757 Problems with conflictHandler in CBLIncementalStore
  • #756 CBLIS query with boolean value returns 0 result
  • #755 CBL 1.1 Mac: CBLQueryRow.document is null
  • #752 CBLMultipartUploader's connection:needNewBodyStream returns closed stream
  • #749 CBLIncrementalStore - Fail when sorting with key from relationship doc
  • #727 ForestDBViewStorage doesn't filter _design docs out when indexing
  • #725 Listener doesn't expose actual Bonjour service name that's published
  • #724 Need a way to disable cert hostname check (only for 'anonymous' P2P certs)
  • #717 'Assertion failed: Sequence of {4A8D140 #633-......} unknown'
  • #714 Error re-adding a document after it's been purged
  • #703 CBLModel not working with namespaced Swift classes
  • #664 Temporary folder not getting removed?
  • #629 Replication loop with conflicts (status 594).
  • #235 Error message passed to rejectWithMessage: in validation block does not propagate to out-error

Known Issues

  • #877 Listener throws warnings even though there is no error.

Where to get it

You can download this release from Couchbase.com

1.1.0

18 Jun 22:36
Compare
Choose a tag to compare

Couchbase Lite iOS v1.1.0 is a major release since v1.0.0 released about a year ago. It has several new features and enhancements including:

  1. Support Couchbase's super-fast new ForestDB storage engine. The SQLite engine still remains the default engine. Follow instructions here to enable the ForestDB engine.
  2. Support database encryption. See here for more detail.
  3. Support a new CBLQueryBuilder that allows developers to use NSPredicates to query the database instead of using map functions.
  4. Has performance improvement in replication and view indexing. View indexes are now stored more efficiently, which speeds up indexing by roughly 10%.
  5. Contain some API changes, which are described here in more detail.
  6. Contain several bug fixes and enhancements.

IMPORTANT: CBL 1.1.0 has a new optimized database schema which is not backwards compatible, so after running with CBL 1.1, your application’s local databases are no longer readable by earlier versions. (Of course this only affects local database storage, not replication.)

As part of this release we had 482 commits which resulted in 40 issues being closed.

Performance

  • #684 iOS 8.2+ seems slower than 8.1 or lesser
  • #677 Test performance improvement replicating docs with large revision trees
  • #390 Sync problem with Cloudant databases - puller or change tracker?

Enhancements

  • #606 Inverse relation support for CBLModel
  • #605 CBLIncrementalStore - Support query via abstract entity
  • #571 Use CBLQueryBuilder in CBLIncrementalStore
  • #569 Support to-many without inverse relationship in CBLIncrementalStore
  • #526 Implement isStoredInExternalRecord support in CBLIncrementalStore
  • #514 Support feed=eventsource in _changes feed
  • #439 Support for encoding / decoding NSURL instances as properties of a CBLModel
  • #358 userProperties method on CBLModel.
  • #316 Can CBLModel define the "type" @Property instead of making a subclass have to implement it?

Bugs

  • #723 CBL 1.1 (iOS) Docs not syncing when I think they should
  • #718 Crash when create a document with attachment in one single revision
  • #712 CBLView updateIndex isn't public, but is in the API spec
  • #711 Potential database upgrade error
  • #709 CBLQuery fullTextRanking and fullTextSnippet properties were removed
  • #705 ForestDB native lib missing dev preview package
  • #701 Couchbase lite iOS memory consumption indexing views
  • #700 ForestDB fails in 32-bit OS due to bug in get_memory_size fn
  • #696 Start-restart replication problem in CBL 1.1.0
  • #691 Thread-safety issue in CBLReplication cookie methods
  • #687 Cannot get the database schema version while replace/upgrade a database
  • #684 iOS 8.2+ seems slower than 8.1 or lesser
  • #672 Pulled docs with a stub attachment failed to insert
  • #665 Multipart streams cannot be reopened when retrying to send the request
  • #662 ForestDB: fullTextSearch emmits wrong values
  • #608 Pull replication missing documents from SG channel
  • #592 CBL 1.0.4 - Rare/minor dealloc issue
  • #578 View not indexing older revisions
  • #576 New object notification not generated when using CBLIncrementalStore
  • #574 Query with limit and postFilter may not return enough rows
  • #566 save and lockForWriting issues
  • #543 Replicators should have independent cookie storage
  • #495 forestdb::RevTree:compact() causing crash
  • #479 ForestDB: Emitting dictionary key causes error
  • #390 Sync problem with Cloudant databases - puller or change tracker?

Where to get it

You can download this release from Couchbase.com

Support Statement

Version 1.0 was released in May, 2014. With this release of version 1.1, the support window for 1.0 expires in December 2015.

Release Release Date End of Life Date
1.0 May 2014 December 2015
1.1 June 2015

1.1 Developer Preview

06 May 17:06
Compare
Choose a tag to compare
1.1 Developer Preview Pre-release
Pre-release

Preview of our upcoming 1.1 release, which includes a number of performance improvements and bug fixes, as well as some new iOS specific features/enhancements, including:

  • Pluggable Storage Engines:
    • New support for encrypting the CBLite databases using the SQLite Storage Engine.
    • [Experimental] ForestDB Storage Engine.
  • Newly overhauled CBLIncrementalStore, an alternative to CoreData.
  • [Experimental] NSPredicate-based queries.
  • New OS X release binaries.

1.0.4

20 Apr 21:45
Compare
Choose a tag to compare

1.0.4 release. Downloads available at Couchbase.com.

1.0.3.1

20 Apr 21:45
Compare
Choose a tag to compare

1.0.3.1 release. Downloads available at Couchbase.com.