We're encountering a frequent but intermittent hang after handing off OTA DFU to iOSDFULibrary 3.1.0. In the happy case, the characteristics are discovered and DFU process proceeds normally:
[DFU] Discovering characteristics in DFU Service...
[DFU] peripheral.discoverCharacteristics(nil, for: FE59)
[DFU] DFU characteristics discovered
...
When we get a hang, it's characterized by the following logging snippet:
[DFU] Discovering characteristics in DFU Service...
[DFU] peripheral.discoverCharacteristics(nil, for: FE59)
[DFU] [Callback] Central Manager did disconnect peripheral
[DFU] Disconnected by the remote device
There are no DFUState updates to the dfuStateDidChange(to:)
delegate method that indicate that DFU has encountered a problem. It just locks up and sits at this point forevermore. We've replicated this issue across multiple of our nrf51422-based devices, and across multiple iOS devices, in both Debug and Release builds.
At this point, it's not even fully clear whether this represents a bug in iOSDFULibrary, or whether we're somehow getting into a bad state before our iOS codebase hands off to the DFU library.