How to differentiate that carrier is e-sim or physical sim

we were using the below code to fetch the carriers in the device. Now we need to differentiate between e-sim and physical sim. Please confirm how we can achieve that.

 let info: CTTelephonyNetworkInfo = CTTelephonyNetworkInfo()   if #available(iOS 12.0, *) {    if let carriers = info.serviceSubscriberCellularProviders?.values, carriers.count > 0 {     for carrier in carriers {      if let carrierName: String = carrier.carrierName, carrier.mobileCountryCode != nil, carrier.mobileNetworkCode != nil {      carrierNames.append(carrierName)      }     }    }   }

May I ask why you want this ?

As you’ve seen in the other thread, there’s no documented support for this.

But even worse, note that starting with iOS 16 the whole CTCarrier class is marked as deprecated with no replacement. All properties of CTCarrier will eventually return placeholder values “at some point in the future.” (Your carrierNames array elements will all be "--".) So it’s not too soon to start thinking about how you will handle this loss of functionality.

How to differentiate that carrier is e-sim or physical sim
 
 
Q