$carrier property can be reported as `nil` when there is multiple SIMs support
4hakke opened this issue · 3 comments
Integration Method: CocoaPods
Xcode Version: 12.5.1
Library Version:
Platform: iOS
Language: Swift
Testen on: iPhone SE (2nd gen) iOS 13.5.1 and iPhone 12 Pro iOS 15.0
Description:
We noticed that number of events where $carrier
value is underfined
was increased. After some investigation of collectAutomaticProperties
method it was found that carrier name and all other properties retrieved from telephonyInfo
are nil
for devices. Further investigation showed that correct information are still provide by telephonInfo
object but wrong object (always the first one aka [[telephonyInfo serviceSubscriberCellularProviders] allValues].firstObject;
) were taken.
Down below you can see a console output for [[telephonyInfo serviceSubscriberCellularProviders] allValues]
that proves needed information is there:
I suppose that reason for that is devices that supports multiple sims (nano-Sim and esim) and only one of them is setup. In that case sim that are not setup still can be retrieved but are nil. So my suggestion to cover this case is to enhance logic for picking proper carrier (CTCarrier
) object e.g. picking first where carrier name is not nil if any.
Expected Behavior:
If device has at least one carrier properly setup it should take object that has name
information.
Happy to answer any additional questions or provide more insights. Thanks.