Skip to content

Releases: NordicSemiconductor/IOS-nRF-Mesh-Library

3.1.0

26 Feb 14:09
e72c37a
Compare
Choose a tag to compare

This version brings support for:

  • Sensor messages (#327),
  • Light LC messages (#328).

3.0.2

11 Feb 12:12
ab2b8b1
Compare
Choose a tag to compare

This is a bug fixing release.

Bugs fixed:

  • Issue with importing a mesh network configuration JSON exported on an older version of nRF Mesh app (#321).

3.0.1

10 Feb 13:31
133f761
Compare
Choose a tag to compare

A new major version of nRF Mesh.

Important

Version 3 breaks API compatibility with previous version. Migration is needed, but should not be difficult. See #295 and #323 for details.
Also, the JSON file generated using Export has changed. nRF Mesh app and library will accept old JSONs, but will generate only new ones. The new one is compatible with nRF Mesh 3.0 for Android.

Features

  • Scenes support
  • Heartbeats support
  • Key Refresh Procedure (only in the library, not available in through the sample app)
  • Periodic publishing from local node
  • Partial export (allows to export only selected nodes, or hide Device Key, so that a Guest could not re-configure nodes)
  • Migration to Xcode 12.4 and Swift 5.3
  • Migration to CryptoSwift (from OpenSSL) (#322) (which removed last Objective-C code)

Complete list of features and changes is available in #295 and #323.

PS. There is no tag 3.0.0 as it had lint validation issues for CocoaPods release. Please use 3.0.1 instead.

3.0 Beta 1

02 Oct 07:55
Compare
Choose a tag to compare

This release bring a ton of features. Because of that, some API and JSON schema changes were necessary.
Have a look at #295 for more details regarding what has changed.

Note, that this version is not backwards compatible. The JSON file produced by nRF Mesh 3.0 or the underlying library is not compatible with one accepted by nRF Mesh 2.x (including Android version). The nRF Mesh for Android will also be migrated to support the new schema in coming months.

To make that more clear, this is initially released as 3.0-beta1 and will be promoted to 3.0 when Android version is ready.

2.2.3

30 Apr 12:32
f9a09aa
Compare
Choose a tag to compare

Improvements:

  • proxy property added to the ProxyFilter returns the connected Proxy Node, or nil if no proxy is connected, or the proxy node is unknown.
  • ProxyFilterDelegate methods will now be called using the delegateQueue given as a parameter to MeshNetworkManager.
  • The sample app displays the user-given node name in Proxy screen.
  • New icons in the sample app.

Bugs fixed:

  • Fixed an issue introduced in version 2.2.2 where the app could crash on Proxy tab on disconnection.

2.2.2

28 Apr 14:39
cc1c353
Compare
Choose a tag to compare

IV Index related Improvements:

  • IV Index object has been moved from Network Key to Mesh Network. This is a network property, not a subnetwork property.
  • IV Index updates fixed. The library will now handle the Secure Network beacon with updateActive flag set or high IV Index. The spec-defined time requirements are checked, so at least 96h need to pass in IV Index Normal Operation state and at least 96h in IV Index Update In Progress. The node will not execute more than one IV Index Recovery within a period of 192 hours.
  • IV Index Test Mode added: see MeshNetworkManager.ivUpdateTestMode flag.
  • A flag to disable limit of 42 when doing IV Recovery. This allows to connect to a network after IV Index changed by more than 42, which can happen at least in 48 weeks since last connection.

Note I: The IV Index changes only when a Secure Network beacon is received. This happens usually when you connect to a Proxy Node, but the Proxy may also relay a SNB sent by another Node.
Note II: To test IV Index Update enabled IV Test Mode. A switch has been added to Settings screen in the sample app. Test Mode allows you to transition IV Index by 1, or change the IV Index Update flag from true to false without the need to wait 96h. It will, however, not allow to transition to higher IV Index without passing the min-time requirement.
Note III: The library will not send Secure Network beacons. It fully relies on other Nodes to initiate the process of updating IV Index. In most applications it will not be a case, as other nodes will reach half sequence number before the app, unless it's constantly connected to the network and sends messages in a loop, which doesn't seem to be probable scenario.

Other improvements:

  • Methods to set and get the outgoing sequence number for local Elements have been added (#265) (649fc61).
  • Migration to Swift 5.2.
  • Disconnect button added in the sample app. Disable Automatic Connection to use.
  • Added Mac to podspec.
  • App icon refreshed.
  • Improved discovering new proxy connection.

Bugs fixed:

  • Primary Element's name is not overwritten anymore. What is set in localElements should be honored.
  • Synchronization in ProxyFilter and BaseGattBearer has been fixed (#246).

2.2.1

17 Dec 09:43
45e1222
Compare
Choose a tag to compare

Bugs fixed:

  • The API related to "compatible models" has been removed as it was incorrect. The server and client model IDs do not have to differ by 1. Even the Bluetooth Mesh Model 1.0.1 spec defines some models differently, for example:

    This was reported in #225.

2.2.0

22 Nov 13:28
10acde1
Compare
Choose a tag to compare

Improvements:

  • Support for proxies with limited Proxy Filter (#212),
  • Ensuring disconnection after provisioning.
  • Light Lightness, Light CTL and Light HSL messages added to the library,

Bugs fixed:

  • Resuming scanning when Automatic Connection is reenabled,
  • Connecting to nodes advertising old Network ID during Key Refresh procedure,
  • Several potential crashes fixed, including #208,

Version 2.2.0 may slightly break backwards compatibility, as some methods got optional initialiser and at one place a typo was fixed.

2.1.0

06 Nov 13:21
Compare
Choose a tag to compare

New features:

  • Simple OnOff Client model (#194)
  • Manual connection management (proxy selection) (#193)

Bugs fixed:

  • Relay clarification (#168)
  • Race conditions (#179)
  • Editing keys possible only when new one is created (#188)

Improvements:

  • Compatibility with Xcode 10.0 (#180)

2.0.0

29 Oct 14:12
Compare
Choose a tag to compare

The new version is a full rewrite of the library and sample app.
The API has changes and is not backwards compatible with the old one. See documentation for how to implement using the new version. The old mesh configuration should be automatically migrated to the new database format when manager.load() is called.

Supported features:

  1. Provisioning devices,
  2. Node configuration,
  3. Sending generic and vendor messages (some Generic Messages are not yet implemented) to unicast, group and virtual addresses,
  4. Proxy Filter configuration
  5. Management of provisioners, network keys, application keys,
  6. Configurable network parameters,
  7. Support for local models on local elements,
  8. Importing and exporting mesh network configuration (format compatible with Android nRF Mesh),
  9. Support for local Configuration Server (ability to configure an iPhone from a remote device).
  10. Handling Secure Network beacons.

Missing features:

  1. IV Update procedure and sending Secure Network beacons,
  2. Updating keys in the sample app (this should be doable using the library),
  3. Not all Generic Messages are implemented,
  4. Support for Health Server and Clients,
  5. Hearbeats,
  6. Remote provisioning (it is now necessary to connect to a device with a Gatt Provisioning Service to be able to provision it)