跳到主要内容

Phase 3 — Apple MatterSupport UI

Layer: Native + Matter Extension (no JS)

System Matter commissioning UI opens (BLE/Wi‑Fi discovery, user picks device, network setup).

Call chain

Matter Extension (RequestHandler)

CallbackWhenWhat we do
validateDeviceCredential(_:)Attestation checkSaves cert declaration + attestation info to App Group
selectWiFiNetwork(from:)Wi‑Fi scan resultsReturns .defaultSystemNetwork
selectThreadNetwork(from:)Thread scan resultsReturns .defaultSystemNetwork
commissionDevice(in:onboardingPayload:commissioningID:)Apple leg completeSaves onboarding payload to App Group
configureDevice(named:in:)User names deviceSaves device name to App Group

Class: RequestHandler (extension point com.apple.matter.support.extension.device-setup)

Shared storage: Extension writes via ESPMatterExtLocalStorage; host app reads via ESPMatterEcosystemInfo.shared.getOnboardingPayload() / getDeviceName() after perform() returns.

Apple’s UI handles discovery + network for the Apple fabric leg. RainMaker fabric certs are not installed during this phase.

What could go wrong

User dismisses the system UI → perform() throws → APPLE_COMMISSIONING_FAILED + COMMISSIONING_ERROR. Invalid or expired QR → device not found or pairing fails in MatterSupport. App Group misconfigured → onboarding payload not readable by host app after Apple leg.

On this page