AFAICT serviceSubscriberCellularProviders is working as well as it ever did [1]. To understand what’s going on here, you have to look at the previous API, subscriberCellularProvider. That API never returned information about the currently installed SIM. Rather, it returned information about the most recently installed SIM. Consider this sequence:
-
On a device with SIM A installed, print the value. You get SIM A.
-
Eject that SIM and print the value. You still get SIM A.
-
Insert SIM B [2] and print the value. You get SIM B.
From that perspective, the current behaviour of serviceSubscriberCellularProviders kinda makes sense.
Why aren't developers allowed to know whether a SIM is present at all?
What do you plan to do with that info?
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
[1] Modulo the fact that it works in terms of CTCarrier and that’s now restricted.
[2] Assuming that SIM B is from a different carrier. When I say “SIM” in this post I really mean “SIM’s carrier”.