В документации указано для CTCarrier carrierName "Значение не меняется, если пользователь находится в роуминге, он всегда представляет провайдера, с которым у пользователя есть учетная запись".
Однако это не говорит о mobileNetworkCode. Изменяется ли это изменение на текущей несущей или оно остается постоянным?
Я пытаюсь найти, если телефон находится в роуминге в обратном вызове startMonitoringSignificantLocationChanges, поэтому избегайте геолокации.