I just need to detect if the device supports esim devices. I will not add new data for eSIM through the application (only by qr code). is there some way to check this without generating a certificate to support esim? It's too long to wait and I don't need all its functionality. I want to check with my device or not.
What I have tried:
CTCellularPlanProvisioning().supportsCellularPlan() —— always returns false (as I understand it, this is just because of the Provisioning certificate)
I also tried to get the current CTTelephonyNetworkInfo().serviceCurrentRadioAccessTechnology operators, but this also fails to quickly get data about the type of eSim card.
Is there a method / api from Apple (or any other way) how to determine if a eSim device?
I expect there is no way to do this directly. The property (
supportsEmbeddedSIM) is on CTCellularPlanProvisioning, which requires an entitlement. You can't just callCTCellularPlanProvisioning(). You need to create a CTCellularPlanProvisioningRequest, but that's not a general purpose tool:You'd need to check the device model. eSIM has been supported on all iPhones since the iPhone XS. (See comments; @sergey_s notes that there are exceptions.)