Some testing with MacOS 10.15.4

MacOS 10.15.4 has come out. What is great is that the app is working with it. But something is still weird. My iPhone X is not connecting consistently. I wrote this post while trying to debug this issue. If you are having issues with the iPhone this post may help.

If I connect using an iPhone 7 (13.3.1) or a iPhone 5s (12.4.5). Multiple times, it works fine. (I’m testing with a MacBook Pro (2018 13 inch).)

Works with iPhone 7 and iPhone 5s

I launch KeyPad application.
Go to the menu and launch Preferences | Launch Bluetooth Settings…
Go to the iPhone Bluetooth Settings
Connect with the MacBook

I get the required popup dialog telling me the connection is complete, and I am able to type on the phone. I click away from the window (to close it) and launch it again (with the hotkey Command-Option-p) and it launches and connects with the phone, and continues to work.

I then forget the MacBook in bluetooth settings (click at the “i”) next to the device name in bluetooth settings, and forget the MacBook.

Then when the Macbook appears in the “Other Devices” on my iPhone, I connect again. And it connects and everything (as I listed above) is fine. I reboot the phone, it still works. I reboot the laptop, and everything still works.

Problem with connecting to iPhone X

The first pass. First connection is fine. When I try to re-connect (like I did in the test above) it just cant connect.

First issue – not able to re-connect with iPhone X

To debug I have done the following.

  1. Find the phone in the bluetooth settings on the MacBook and make sure I disconnect before I try to pair from the iPhone – does not work.
  2. I uninstalled and re-installed the keypad application, still does not work
  3. Reboot the iPhone – and it works. That is I am able to connect.

“does not work” means that it spins trying to connect, and then I get a Pairing Unsuccessful message.

Solution 1: Reboot the iPhone

Next test – Unpair from the MacBook

After it was working properly, I wanted to see what happens if I go to bluetooth settings (on the macbook) and remove the bluetooth device.

  1. I tried to launch the keypad application
  2. It spins for a little bit and then shows a popup with a code on the Macbook. There isn’t a similar code that shows on the iPhone
  3. I try to click on the connect button and nothing happens, (actually the app crashes, note to self fix this crash)
  4. I look in the phone bluetooth settings screen and I still see the MacBook Pro in the “My Devices”, clearly it did not unpair.
  5. Go back to the Bluetooth settings on the MacBook pro – it still shows there (just not connected), I try to connect from there, and it does the same thing. Shows a code and asks me to check on the phone
  6. Sometimes I see the pairing code on the phone, but for a fleeting half second, and then it goes away

Then I decide to try something different:

  1. I remove the connection from the bluetooth settings (click on the x next to the phone name)
  2. It disconnects, but it still shows on the MacBook with a “not connected”
  3. I go to the iPhone and in the bluetooth settings click on the “i” next to the computer name, and forget the macbook
  4. I relaunch the Preferences from the App Toolbar Icon and click “Launch Bluetooth Settings…”
  5. I connect from the iPhone and it connects fine

Retry – First Issue

I then retry the first Issue I am facing. And this time it is slightly different.

  1. I unpair from the phone bluetooth settings
  2. I try to launch keypad with the hotkey and it spins for a while and does not connect
  3. If I have the bluetooth settings open on the iPhone then I get the Pairing key dialog
  4. I then tried to reconnect bluetooth from the iPhone, and it went through properly

So I am not able to retry the first issue I faced. I tried it a lot of times before I rebooted the phone so I know the issue is real…now to find steps so that I can debug it. What is good is that I did not need to reboot the mac to get it back to normal.

Conclusion

I wrote this post in trying to debug a user issue where he was not able to connect to KeyPad from the iPhone. I hope this helps clarify some of the problems with connectivity. Please do tell me about any issues that you face. I want to make this app robust and I need your help.

I know that this is a difficult post to read, I will try to make it a more generic debug steps document. Key item is that all connections should be initiated from the iPhone/Phone only. If you connect from the MacBook the KeyPad app does not connect get the initial connection completion signal and will never connect.