EAWiFiUnconfiguredAccessoryBrowser "Accessory Setup" UI selects blank/null SSID by default

We've received several reports of a new bug while setting up our products with WAC. The Accessory Setup UI appears with a blank network selected and the message 'This accessory will be set up to join "(null)".' at top. The user can tap "Show Other Networks..." to select another network, but this experience is very confusing. Why does this UI present a choice that is known to be invalid when other valid choices exist?

I've captured a screenshot and sysdiagnose from this case. In most cases this problem happens only intermittently, but I can reproduce it consistently by disconnecting my iPhone from any WiFi network (WiFi remains enabled).

My suggestion for a better user experience is that this UI should select the default network according to these rules:

  1. The network to which iPhone is currently connected.
  2. Any network which is in the known/my list for this iPhone
  3. Any valid network

I believe rule #1 is the existing behavior, but applying rules #2 and #3 as fallbacks would be an improvement.

Is there anything I can change in my iOS code or in my accessory's WAC server to improve this experience?

We've received several reports of a new bug while setting up our products with WAC. The Accessory Setup UI appears with a blank network selected and the message 'This accessory will be set up to join "(null)".' at top. The user can tap "Show Other Networks..." to select another network, but this experience is very confusing. Why does this UI present a choice that is known to be invalid when other valid choices exist?

I'm not sure of what specifically changed but it sounds like we broke something. Have you filed a bug? If so, what's the bug number?

Is there anything I can change in my iOS code or in my accessory's WAC server to improve this experience?

No, you don't have any control over this UI. However, one thing I would suggest is filing a separate bug asking us to redesign how WAC pairing works and integrating this into AccessorySetupKit. At this point, the WAC pairing APIs are quite old and need to be revisited, with AccessorySetupKit being the most natural "home" for them.

Finally, this assumes that your accessory is fact a pure "WAC" accessory, not a HomeKit accessory choosing to use the old WAC pairing API. However, if this is a HomeKit accessory then my suggestion would be to just shift to HomeKit's pairing APIs, which are simply "better" and have been for a VERY long time.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Hi Kevin,

Thanks for your quick and helpful response!

I created a bug report for this here: FB20313096. The sysdiagnose is attached.

I also created a Suggestion asking for WAC support in AccessorySetupKit here: FB20313163

Our accessory is a pure WAC accessory. It is not a HomeKit accessory. Our product is a digital picture frame. As far as I'm aware, none of the HomeKit categories are a good fit for our product so we don't yet have plans to adopt HomeKit.

Thanks for your quick and helpful response!

I created a bug report for this here: FB20313096. The sysdiagnose is attached.

I also created a Suggestion asking for WAC support in AccessorySetupKit here: FB20313163

Perfect, thank you.

Our accessory is a pure WAC accessory. It is not a HomeKit accessory. Our product is a digital picture frame. As far as I'm aware, none of the HomeKit categories are a good fit for our product so we don't yet have plans to adopt HomeKit.

That's totally reasonable.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Hi Kevin,

Thanks again for your responses and consideration about this topic. Do you know when this bug fix or suggestion will be considered for a future update?

Best, Joe

@DTS Engineer: This new WiFiInfracture entitlement and API would be a great solution for this problem and allow us to use AccessorySetupKit instead of the old WAC UI. I hope it becomes available outside the EU.

https://aninterestingwebsite.com/documentation/wifiinfrastructure/sharing-wi-fi-network-credentials

@DTS Engineer: This new WiFiInfracture entitlement and API would be a great solution for this problem and allow us to use AccessorySetupKit instead of the old WAC UI.

It's not explicitly stated, but AccessorySetupKit on its own can be used to streamline pairing an accessory into a network. The basic flow here is:

  • Use AccessorySetupKit to discover and connect to your accessories.

  • Your accessory passes the list of Wi-Fi networks visible to it back to your app.

  • Your app presents that list, allowing the user to select the network and enter the credentials.

  • Your app sends the credentials back to the accessory, which then connects to the target.

This flow mimics the "manual" flow many accessories implement, but avoids needing to leave the app to manually change the network in settings.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

@DTS Engineer

Thanks! This flow works, but our main goal in using WAC is to avoid asking the user to enter their password (preshared key). Our #1 customer service issue comes from the the entry of an incorrect password. WAC allows the user to select the SSID from a list and iOS provides the credentials directly to the accessory. WiFiInfrastructure does the same.

EAWiFiUnconfiguredAccessoryBrowser "Accessory Setup" UI selects blank/null SSID by default
 
 
Q