We're using the IOS-Pods-DFU-Library on an iOS13 iPhone connecting with an embedded device that supports Nordic NRF DFU. We're experiencing some issues with both the nRFConnect app crashing and our custom app (using IOS-Pods-DFU-Library) failing when we run DFU with certain timing.
By timing I mean: If our BLE device responds to the nRFConnect (or our custom) app's messages without a delay, or we use certain Object Sizes for the DFU image transfer, we often experience the app crashing or library failing.
We are not aware of any specific timing needs of the Nordic library or app, but we're certainly experiencing them.
If delays and object size are set properly, we're not seeing any issues. We're unable to get symbolicated logs from the nRFConnect app when it crashes so we can't tell what exactly is happening, but crash logs pulled from the phone indicate it's an EXC_CRASH (SIGABRT) crash on Thread 7 due to Dispatch queue: nRF Connect.ViewStateStore.queue.
We are able to get some logs in Xcode from our own mobile app using the library when it fails and the device times out. See the following.
2020-02-26 00:36:43.446505-0500 Application[9607:2177489] logWith: 5 message: 'Notification received from 8EC90001-F315-4F60-9FB8-838830DAEA50, value (0x): 600101000000000000000000000000'
2020-02-26 00:36:43.447120-0500 Application[9607:2177489] logWith: 5 message: 'Data object 1/408 created'
2020-02-26 00:36:43.447304-0500 Application[9607:2177489] logWith: 10 message: 'Uploading firmware...'
2020-02-26 00:36:43.447564-0500 Application[9607:2177489] logWith: 1 message: 'Sending firmware to DFU Packet characteristic...'
2020-02-26 00:36:43.448987-0500 Application[9607:2177489] logWith: 1 message: 'Writing to characteristic 8EC90001-F315-4F60-9FB8-838830DAEA50...'
2020-02-26 00:36:43.449961-0500 Application[9607:2177489] logWith: 0 message: 'peripheral.writeValue(0x03, for: 8EC90001-F315-4F60-9FB8-838830DAEA50, type: .withResponse)'
2020-02-26 00:36:47.049768-0500 Application[9607:2177489] Peripheral Disconnected: 9DC80AEF-CF47-E623-BA01-00BD75A976C8
2020-02-26 00:36:47.050051-0500 Application[9607:2177489] Error: Error Domain=CBErrorDomain Code=6 "The connection has timed out unexpectedly." UserInfo={NSLocalizedDescription=The connection has timed out unexpectedly.}
2020-02-26 00:36:47.060955-0500 Application[9607:2177489] logWith: 0 message: '[Callback] Central Manager did disconnect peripheral'
2020-02-26 00:36:47.062965-0500 Application[9607:2177489] logWith: 5 message: 'Disconnected by the remote device'
2020-02-26 00:36:47.063929-0500 Application[9607:2177489] onDFUError
We're happy to discuss timing requirements or have a look at any documentation that you can point us to that discusses these.
Any help is greatly appreciated. Thanks.