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.
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 isunderfined
was increased. After some investigation ofcollectAutomaticProperties
method it was found that carrier name and all other properties retrieved fromtelephonyInfo
arenil
for devices. Further investigation showed that correct information are still provide bytelephonInfo
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.