USB-C to iPhone 16 USB-C communication

Hi everyone,

We're working on a custom USB-C accessory based on an MCU (ARM Cortex-R8, running RT-Thread RTOS) with a Synopsys DWC3 USB Device controller. Our goal is to stream real-time sensor data (~10 Mbps) from the accessory to an iPhone via USB-C.

We're planning to configure our MCU as a USB NCM device (following USB-IF NCM v1.0 spec), so the iPhone sees it as a standard Ethernet adapter. We would then run a lightweight TCP/IP stack (lwIP) on the MCU side and communicate with our iOS app via standard BSD Sockets / Network.framework over the virtual network — no gateway, just direct IP-to-IP communication within the local network that the NCM device presents.

Questions:

Feasibility confirmation: Based on our description, do you see any issues with this approach on iPhones including iPhone 16 and newer models? Our USB controller supports High-Speed (480 Mbps), so NCM throughput should not be a bottleneck.

No-gateway concern: We don't plan to implement a DHCP server or gateway on the MCU. We'd use static IP configuration (or Link-Local addressing) for direct socket communication. Is there anything in iOS's network stack that would prevent this — for example, requiring a DHCP-assigned address or a default gateway before allowing socket traffic on the USB Ethernet interface?

MFi and long-term viability: We understand this approach doesn't require MFi certification, since NCM is a standard USB-IF class and iOS has built-in Ethernet support. However, we want to make sure this doesn't go against the spirit of the MFi program or Apple's accessory policies. Is there any risk that Apple might restrict or block non-MFi NCM accessories in a future iOS update? We'd rather invest our effort in the right approach from the start.

App Store review: Would an iOS app that communicates with our accessory exclusively via standard socket APIs (Network.framework / BSD Sockets) over the USB Ethernet interface face any App Store review issues — assuming it doesn't use any private APIs and doesn't declare MFi support?

Any guidance would be greatly appreciated. We want to make sure we're building on a solid foundation.

USB-C to iPhone 16 USB-C communication
 
 
Q