Can an iOS app access a generic FTDI USB-serial device? (Works on Android, not on iPhone).

Hello,

I am developing a cross-platform mobile app that communicates with an external accessory over a serial (UART) link.

HARDWARE : The accessory is an optical reading probe that connects to the phone via USB. Inside the cable there is a standard FTDI USB-to-serial chip (similar to common FTDI/CP210x USB-serial adapters).

WHAT WORKS On Android, our app:

Detects the USB device Opens the serial port Reads and writes raw bytes successfully

This wired FTDI path is fully implemented and working.

WHAT DOES NOT WORK On iPhone, using the same wired FTDI USB accessory:

We connect via Lightning or USB-C adapter The app never sees the FTDI device We cannot find a public iOS API to open a generic USB-serial port

MY QUESTION :

Is there any supported way for a third-party iOS app to communicate with a generic FTDI USB-serial device over a wired USB connection?

Specifically, am I missing:

A public Apple framework for USB serial? An Info.plist key or entitlement? A system driver on iOS similar to macOS AppleUSBFTDI (TN2315)?

Or is wired USB-serial on iPhone only possible with MFi-certified accessories (External Accessory framework) or another transport such as Bluetooth LE?

WHAT I HAVE ALREADY CHECKED

External Accessory: seems to require MFi hardware and a registered protocol string. Our FTDI probe is not MFi. TN2315 (AppleUSBFTDI): appears to be macOS only, not iOS. Physical USB connection: cable fits, but no serial API is exposed to the app.

ENVIRONMENT

Platform: iOS (iPhone) Language: C# / .NET-iOS Need: transparent byte-level serial read/write

SUMMARY:

Android USB-serial works with our FTDI wired accessory. iOS does not.

Am I missing something on iOS, or is generic FTDI USB-serial simply not supported for third-party iPhone apps?

Thank you for any guidance.

Is there any supported way for a third-party iOS app to communicate with a generic FTDI USB-serial device over a wired USB connection?

No, this is not possible on iOS (meaning "iPhone"). It IS possible on iPadOS using USB DriverKit, though the work involved is substansial.

Am I missing something on iOS, or is generic FTDI USB-serial simply not supported for third-party iPhone apps?

You are not missing anything, as this is not supported. I do have a post here describing two approaches that can work, but both involve significant custom hardware that works in very specific ways.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Can an iOS app access a generic FTDI USB-serial device? (Works on Android, not on iPhone).
 
 
Q