Matter over wifi without matter client developer profile

My iOS app uses the Matter framework to commission devices over Wi-Fi (not Thread). With the Matter Client Developer Profile installed, commissioning works perfectly. However, in TestFlight builds without the profile, commissioning fails, even though the app includes the Matter Allow Setup Payload capability and the following in Info.plist:

<key>NSBonjourServices</key>
<array>
    <string>_matter._tcp</string>
    <string>_matterc._udp</string>
    <string>_matterd._udp</string>
</array>

How can I enable Matter device commissioning using the Matter framework in production/TestFlight builds without the Matter Client Developer Profile?

Please provide guidance or specific configurations needed for production environments

Answered by DTS Engineer in 852452022

Is it possible to commission Matter device without using MatterSupport.framework?

No, not in the "general" case*.

*The system blocks access to specific BLE characteristics that are part of the "basic" commissioning flow used for new accessories. However, I believe their are other pairing flows that would bypass this flow (for example, secondary commissioning of WiFi accessories).

I've tried using Matter.framework alone and it works fine for me. However, a client developer profile is requiered in this situation, which means it doesn't work on TestFlight's release builds without client developer profile.

Yes, that's correct.

Is there a way to replace the client developer profile in the release builds? I hope so.

No.

Or I must use the Matter extension and the MatterSupport.framework to start and then use Matter.framework for commissioning to my ecosystem?

Yes, however, I want to clarify that the MatterSupport framework's role here is to facilitate the pairing process, not perform it. The actual pairing process is still handled entirely Matter framework.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

My iOS app uses the Matter framework to commission devices over Wi-Fi (not Thread).

Fabulous! At a purely personal level, I'm a lot more excited by Wi-Fi accessories than I am by Thread.

With the Matter Client Developer Profile installed, commissioning works perfectly. However, in TestFlight builds without the profile, commissioning fails.

What's actually failing? More specifically, is your MatterSupport extension failing (and, if so, at what point is it failing) or are you trying to have your app directly commission the accessory?

I'm checking with the engineering team, but I believe the system is designed to work like this:

  1. The "base" behavior of the system is that the BLE characteristics matter uses for pairing aren't accessible to apps, which means apps cannot directly pair with Matter accessories. Instead of direct commissioning, apps implement a MatterSupport extension, so that the system handles the initial BLE discovery and then passes the necessary information to the extension.

  2. What the Matter Client Developer Profile* actually does is allow apps to access the characteristics blocked in #1. This lets an app do its own "direct" commissioning, which makes it easier to validate that the accessory works properly, as well as testing and debugging your own commissioning code.

*This is what it does "today". When we originally introduced the profile, Matter was still "beta" so it actually restricted much more than it does today.

Note that this does mean that you cannot directly pair (#2) only works with the profile installed. The typical flow here would be that you'd use #2 to debug your accessory and your commissioning code, then move that commissioning code over into a MatterSupport as you move toward a "finished" product/app.

even though the app includes the Matter Allow Setup Payload capability

That capability is only necessary if you want to implement a flow where you directly provide the setup payload instead of having the MatterSupport system capture it using the camera. Either way, it won't prevent the pairing process from working.

and the following in Info.plist:

That looks fine, though you may also need NSBluetoothAlwaysUsageDescription, even when using a Matter Support extension.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Thanks for your attention!

Is it possible to commission Matter device without using MatterSupport.framework?

I've tried using Matter.framework alone and it works fine for me. However, a client developer profile is requiered in this situation, which means it doesn't work on TestFlight's release builds without client developer profile.

Is there a way to replace the client developer profile in the release builds? I hope so.

Or I must use the Matter extension and the MatterSupport.framework to start and then use Matter.framework for commissioning to my ecosystem?

Accepted Answer

Is it possible to commission Matter device without using MatterSupport.framework?

No, not in the "general" case*.

*The system blocks access to specific BLE characteristics that are part of the "basic" commissioning flow used for new accessories. However, I believe their are other pairing flows that would bypass this flow (for example, secondary commissioning of WiFi accessories).

I've tried using Matter.framework alone and it works fine for me. However, a client developer profile is requiered in this situation, which means it doesn't work on TestFlight's release builds without client developer profile.

Yes, that's correct.

Is there a way to replace the client developer profile in the release builds? I hope so.

No.

Or I must use the Matter extension and the MatterSupport.framework to start and then use Matter.framework for commissioning to my ecosystem?

Yes, however, I want to clarify that the MatterSupport framework's role here is to facilitate the pairing process, not perform it. The actual pairing process is still handled entirely Matter framework.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Matter over wifi without matter client developer profile
 
 
Q