I've been having some trouble implementing eSIM into an existing iOS carrier-application.
The setup
public-cellular-plan
entitlement which I
understand is the entitlement giving me access to the eSIM functions
of CoreTelephony.General > Frameworks, Libraries, and Embedded Content
which is marked as Do not Embed
, same as other frameworks like CoreData and such.import CoreTelephony
The problem
Supposedly with all this, I should now have access to the eSIM functions like supportsCellularPlan
but unfortunately it doesn't seem to be working:
let provisioning = CTCellularPlanProvisioning()
let supportsESIM = provisioning.supportsCellularPlan()
print("\(supportsESIM)")
// This prints false but should be true as the XR supports eSIM
I've also tried via TestFlight with the distribution profile but same result.
Any ideas as to what I'm doing wrong?
So... after a lot of trial an error I was able to solve this little issue.
There are 2 things to know about supportsCellularPlan()
(other then having the eSIM entitlements of course).
First:
You need to have WiFi enabled for it to work as it seems to need to connect with Apple for some checks.
Second:
It requires the CarrierDescriptors
to be entered correctly in your info.plist
as it is carrier-bound.
Once you have that, it should work as expected.