iOS SDK Change Log
[4.1.0] - 2026-09-04
iOS SDK 4.1.0 (FW 8.65)
Added
- Guided flows (Wearing Optimization and Blood Pressure Initialisation) are now translated into all 17 supported languages. The host application must list the languages in its Info.plist (CFBundleLocalizations) for them to be used.
- Cuffless bracelet blood-pressure spot measurement — start/stop API with the measurement result returned to the integrator.
Changed
- Embeds firmware 8.65 for the 287-2B bracelet.
- Licence-key enforcement hardened for third-party builds: the licence check is now performed inside BLE initialisation so it cannot be bypassed, and offline use is granted only from a previously validated licence cached securely in the Keychain instead of being allowed on a network error.
- Faster data delivery at the default 1-minute activity sampling rate: activity records are now retrieved one at a time instead of in batches of three, so measurements reach the cloud continuously instead of in 3-minute bursts.
- Firmware update recovery: a bracelet left in bootloader mode after an interrupted update is now detected directly and the update resumes from where it stopped, instead of waiting for the bootloader to time out.
- Firmware update resume now reuses the firmware package originally selected, so study-specific firmware resumes with the correct image.
- Safer synchronisation of the daily summaries (activity, heart rate, blood pressure, SpO2, respiration rate, skin and core body temperature) when records are removed while an upload is in progress.
- Additional robustness: wearing-optimization alerts are now driven by the firmware, the sleep wake-up time window has been relaxed, invalid height values are rejected, and the SDK now logs a warning when the applied device plan would stop the bracelet from measuring.
Fixed
- Fixed a Bluetooth authentication issue on a first or stale bond that made secured commands time out and the connection drop and reconnect.
- Fixed a second firmware update being started while one was already running, which caused the update to fail with a connection error.
- Fixed a crash and reduced memory pressure during large data synchronisations.
[4.0.0] - 2026-07-08
Guided setup flows are now bundled as self-contained SwiftUI modules.
Added
WearingOptimizationView— the whole Wearing-Optimization flow (preparation → instructions → running → retry → success/failure) as one SwiftUI view. Present it, pass a result callback; the SDK drives the bracelet. See the Wearing Optimization guide.BPInitializationView— the NIBP (blood-pressure) calibration flow bundled the same way; the host supplies cuff readings through acuffProviderclosure. See the Blood Pressure guide.- NIBP spot-measurement results (cuffless bracelet BP).
- Mac Catalyst compatibility.
- FW 8.48 for 287-2 bracelet.
Changed
- Secured BLE connection (requires FW 8.41+).
- New Corsano sleep pipeline.
- Improved PPG2 sync after ECG and NIBP-spot measurements.
- Reduced memory pressure during raw-PPG sync.
[3.7.0] - 2026-03-13
Added
- FW 7.97 for 287-2 bracelet
- Sample app UI improvements
[3.6.0] - 2025-12-17
Added
- FW 7.65 for 287-2 bracelet
[3.5.0] - 2025-07-22
Added
- FW 7.26 for 287-2 bracelet
Changed
- SDK and sample app are now compatible with Swift 6
- Add .once_seconds and .once_10_seconds monitoring rate options
[3.0.0] - 2025-01-07
Added
- FW 7.25 for 287-2 bracelet
Changed
- NordicDFU lib is not needed any more as dependency
- Simulator compatible
- CorsanoSDK package is now a ".xcframework" instead of a ".framework"
- Check the sample app Xcode projetct configuration (General/Build Settings/Build Phases) to make sure your app compile on Real device and simulator
[2.4.4] - 2025-15-05
Added
- Wearing optimization feature
- FW 7.13 for 287-2 bracelet
[2.4.3] - 2025-12-04
Fixed
- Fix issue with default sleep goal value
[2.4.2] - 2025-11-04
Fixed
- Fix issue with default scheduled BedTime and Rise Time
[2.4.1] - 2025-08-04
Fixed
- Fix crash with DFU
[2.4.0] - 2025-03-04
Deprecated
- Removed Realm lib from CustomFrameworks folder.
Changed
- Xcode 16.3 compatibility
Fixed
- Fix issue with naming conflict
Added
- FW 6.87 for 287-2 bracelet
[2.3.0] - 2025-18-02
Added
- SDK licence key is now mandatory to run the SDK. If the key is missing or invalid, the Bluetooth stack will not start.
- Added ECG and Blood Pressure feature.
- FW 6.73 for 287-2 bracelet
[2.2.0] - 2024-20-12
Added
- New function to set the monitoring rate (see BLE cmd "runVitalParametersSamplingRateBLECmd")
- Xcode 16.2 compatibility
- FW 6.40 for 287-2 bracelet
[2.1.5] - 2024-12-11
Added
- New option to enable/disable live tracking:
- Use the function enableLiveTrackingData(isEnable: Bool) in AppSettingsViewModel.
- A button to test this feature has been added on the app dashboard. Live data are received into the liveDataChanged() function into SyncStateViewModel
- Xcode 16.1 compatibility
- FW 5.83 for 287-2 bracelet
[2.1.0] - 2024-02-10
Added
- Remove CloudSDK dependencies (Alamofire, Moya, Gzip pod dependencies removed.)
- Rename Corsano SDK. From CorsanoSDK_NoHealthKit To CorsanoSDK_NoCloud
- Xcode 16.0 compatibility
- FW 5.82 for 287-2 bracelet
[2.0.0] - 2024-29-08
Added
- Update to latest Realm
- Xcode 15.4 and iOS 17.4 compatibility
- FW 5.74 for 287-2B bracelet
Changed
- Introduce new BLE cmd to define the sampling rate for each file (see online doc for details)
[1.9.7] - 2024-09-03
Added
- Update to latest Realm
- Xcode 15.3 and iOS 17.4 compatibility
- FW 5.30 for 287-2B bracelet
Changed
- Option to set Int value instead of enum to define file chunck size in startRealm function parameters
[1.9.6] - 2024-25-01
Added
- New option to share firmware log
- Update to latest Realm
- Xcode 15.2 compatibility
- Manage showLowBatteryAlert and showBatteryFullChargingAlert
- Added skin type and Hair density picker in UI + button to sync user profile to the bracelet on demand
[1.9.3] - 2023-27-11
Added
- New function to read the current device plan "getCurrentDevicePlan" in PeripheralViewModel
[1.9.2] - 2023-21-11
Added
- Ready for Xcode 15.0
- FW 5.0 for V2 bracelet
- Fix issue to retrieve PPG data
[1.9] - 2023-19-9
Added
- Ready for Xcode 15.0
[1.8] - 2023-26-4
Added
- Ready for Xcode 14.3.1
- FW 4.20 for V1 bracelet
- FW 4.51 for V2 bracelet
[1.7] - 2023-26-4
Added
- Ready for Xcode 14.3
- FW 4.17 for V1 bracelet
- FW 4.38 for V2 bracelet
Added for internal use:
- DFU: isDeveloperFW added in SDKManager.instance.getSDK().bluetoothManager.startDFU(isDeveloperFW: false)
- Added function in BLEFileStreamingDelegate delegate
- UserprofileAdded hcpCode variable (for internal use)
[1.6] - 2022-12-9
Added
- FW 4.15 for V1 bracelet
- FW 3.94 for V2 bracelet
Under the hood fixes in better sync speed.
[1.5.1] - 2022-10-18
Added
- Library evolution support for SDK
- FW 4.15 for V1 bracelet
- FW 3.86 for V2 bracelet
Changed
- In UserprofileViewModel we added 3 extra field for initialisation: patientName, dischargeDate, infusionDate - for internal use
- In BluetoothStateViewmodel we edited the delegate coming from the SDK (added "toPeripheral") - for internal use
- In DeviceFound file we edited the delegate coming from the SDK (added "withSecuredKey") - for internal use
[1.5] - 2022-08-23
Added
- FW 3.99 for V1 bracelet
- FW 3.69 for V2 bracelet
- Added ACC (X,Y,Z) for 287-1B
[1.4.2] - 2022-07-18
Added
- Fixed issue with Emography crash
[1.4.2] - 2022-07-18
Added
- Realm summary slots are now initialised with nil in stead of 0
- Fixed issue in Emography crash
[1.4] - 2022-07-11
Added
- Fixed minor issues
- Updated realm to version 10.28.0
- Removed images from the SDK - size is much smaller now
- FW 3.92 for V1 bracelet
- FW 3.56 for V2 bracelet
[1.3.1] - 2022-06-01
Added
- Fixed minor issues
- Added new FW 3.25 for V2 bracelet
[1.3] - 2022-05-11
Added
- Fixed issue with emography
[1.2.3] - 2022-05-06
Added
- Added bpmQ, spo2Q and breathQ back to the db
[1.2.1] - 2022-05-03
Added
- Added a new migration script for userprofile model
[1.2] - 2022-05-02
Added
- Added a new migration script for value MetricStepsSummary.stepDistance
- Added protection to prevent a crash when creating summaries
- Added functions to get the slots per metric, see below:
- getActivitySummerySlots
- getStepsSummarySlots
- getBPMSummerySlot
- getBreathSummerySlot
- getSpo2Summery
- getCoreBodyTemperatureSummerySlot
- getBodyTempSummerySlot
- getEmographySummarySlot
- getSleepSummerySlots
[1.1.4] - 2022-04-21
Added
- Added migration script for value MetricStepsSummary.stepDistance
[1.1.3] - 2022-03-25
Added
- Added function to get raw activity with callbacks
[1.1.2] - 2022-03-16
Added
- Updated FW to 2.65
- Added function to set BLE db
- Update in sync to lower CPU usage
- Working with Xcode 13.3
[1.1.1] - 2022-03-14
Added
- Fixed issue with double threads when syncing data
[1.1] - 2022-03-11
Added
- FW upgrade for the V2 bracelet -> 2.62
- Optimisations in sync
- BLE connection stability fix
[1.0.14] - 2022-03-02
Added
- Improved sync speed and logics
- Added DFU recovery code snippet
- Added queries for raw activity
- Added queries for slots of all the metrics
[1.0.13] - 2022-02-24
Added
- Optimisations of syncing
- Updated version of the FW to 2.50
[1.0.6] - 2022-02-15
Added
- Added option to sync PPG2, ACC and BioZ with or without defined file size
- Added option to delete PPG2, ACC, BioZ realm references and files in local storage
[1.0.4] - 2022-02-09
Added
- Added PPG2, ACC and BioZ api’s for V2 bracelet (287-2B)
- Added withSummaries setting to turn creating summaries on and off
[1.0.3] - 2022-02-03
Added
- Added bpmQ to bpm slots
- Added spo2Q to spo2 slots
- Added cognitiveZoneQ to emography
- Changed variable naming in Emography object to match android
- Added MetricEmographySummary getSlots method
- Added Spo2Api callback-less methods
- Setting plan 128Hz PPG2 and interval via setPlanDirectly()
[1.0.2] - 2022-01-26
Added
- Changed skip install to yes
[1.0.1] - 2022-01-26
Initial versioning. SDK is already being used in Corsano Main App for over a year.
Added
- Delete function for sleep summaries added