Unable to Pair WLD with iPhone7/7+

Originator:saumitra.vaidya
Number:rdar://28644745 Date Originated:10/05/2016
Status:Closed Resolved:
Product:iOS SDK Product Version:MNAY2LL/A
Classification:Bug Reproducible:Always
 
Summary:
When attempting to register a WLD with the new iPhone 7 I am unable to successfully pair with the WLD. During the pairing step the app will get stuck on Pairing with WLD screen and the WLD goes into a solid blue state but it never progresses forward and eventually disconnects with a Detector Connection Lost prompt.
Note this is successful on an iPhone 6+ (10.0.1)

Steps to Reproduce:
1. Login to the Lyric App
a. New Users Skip to step 3
2. Existing Users: Tap the top left menu icon then tap on "+ Add New Device"
3. Tap "Lyric Water Leak & Freeze Detector"
4. Create a Location or select and existing Location if available
5. Insert Batteries into the Water Leak Detector (WLD) and wait for the Blue LED to Blink
a. If the LED Blinks Green tap and hold the reset button, under the Battery Cover, for 5 seconds until you hear a beep then the WLD should start to blink blue
6. Tap "Next"
a. Looking for Water Leak Detectors is displayed
b. After the app finds the WLD it pairs with it and displays Paring with Detector while the WLD LED will turn Solid Blue
c. After 45 seconds the Pairing is lost, the App navigates back to Power up your detector with a Detector Connection Lost prompt

Expected Results:
Bluetooth enabled device should be paired with iPhone 7 and 7+

Actual Results:
On iPhone 7 and iPhone 7+ bluetooth device does not get paired. Never receive delegate callback

- (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error 

Version:
iOS 10.0.2 (14A456)

Notes:
Device chipset: Broadcom BCM 43438 which supports BLE 4.1+. Device SDK BTEWICED_00.16.00-AMPAK-2.0.0 which supports BLE 4.1+.


More details attached in BLE_Issue.txt

Configuration:
iPhone 7 (MNAY2LL/A)

Attachments:

Details about the accessory’s BLE chipset:
Device chipset is Broadcom BCM 43438 which supports BLE 4.1+
Device SDK is BTEWICED_00.16.00-AMPAK-2.0.0 which supports BLE 4.1+.


The app is expecting a call back from the OS but never receives it for service discovery. We cannot capture Airtrace from the app as mentioned earlier and logs will yield nothing significant since we never hit any of the breakpoints to log anything. More details:

There is nothing to log except one line:

2016-10-05 16:14:08.743054 App[602:210453] startDiscoveringUnsecureServices


Then nothing happens after that when we would expect the delegate to be called with either an error or the discovered services.

Exact call is:

[self.peripheral discoverServices:self.device.BLEPrimaryServiceUnsecureUUIDs];

Values in self.device.BLEPrimaryServiceUnsecureUUIDs


2016-10-05 16:23:47.056511 App[617:213455] 0000B300-0000-1000-8000-00XXXXXXXXXX (CBUUID)
2016-10-05 16:23:47.056653 App[617:213455] 0000B301-0000-1000-8000-00XXXXXXXXXX (CBUUID)


Although the contents are not strings, they are CBUUID objects and I have verified that (as shown in log above).


Expected delegate callback method:

- (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error


But breakpointing on that, got nothing. I also put a breakpoint on every delegate method, none of them ever get called.


So, it can discover the detector just fine. It fails trying to discover the services, although that works fine on a non iPhone 7 device, running the same iOS version, connecting to the same WLD.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!