Using iPhone6, Xcode 8.1, running iOS 10.1.1, executing the following Swift code I keep getting
Unable to retrieve CarrierName
Error message appears before my first ViewController
even loads.
I searched for solutions to similar (but not same) CarrierName
issues. Most of them recommend to import CoreTelephony
. I Added the import of
CoreTelephony
but i still get the same error. Below is the code snippet that shows viewDidLoad
followed by the console output. Any insights into this error?
// ViewController.swift
// MapLocator
import UIKit
import MapKit
import CoreLocation
import CoreTelephony
class ViewController: UIViewController, UISearchBarDelegate, MKMapViewDelegate,UINavigationControllerDelegate {
var searchController:UISearchController!
var annotation:MKAnnotation!
var localSearchRequest1:MKLocalSearchRequest!
var localSearchRequest2:MKLocalSearchRequest!
var localSearch1:MKLocalSearch!
var localSearch2:MKLocalSearch!
var localSearchResponse1:MKLocalSearchResponse!
var localSearchResponse2:MKLocalSearchResponse!
var error:NSError!
var pointAnnotation:MKPointAnnotation!
var pinAnnotationView:MKPinAnnotationView!
var placeMark1:MKPlacemark!
var myRoute : MKRoute?
var coord1 : CLLocationCoordinate2D!
var coord2 : CLLocationCoordinate2D!
// var newPt : MKMapPoint!
// var lineArrayPtr = [MKMapPoint]()
var lineArrayPtr:UnsafeMutablePointer<MKMapPoint>? = nil
var pointIndex : Int = 0
var lp1 : MKMapPoint!
var lp2 : MKMapPoint!
var lp3 : MKMapPoint!
var lp4 : MKMapPoint!
var searchButtonClicked = 0
var buttonTouchCount : Double = 0
let tapsPerMeter : Double = 2
var pointsPerMeter : Double!
var tapDistance : Double!
//**************
override func viewDidLoad() {
super.viewDidLoad()
mapView.delegate = self
print("Entered viewDidLoad")
let latitude_x: Double = 42.755139
let longitude_x: Double = -71.584
// Init the zoom level
let coordinate:CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: latitude_x, longitude: longitude_x)
//let span = MKCoordinateSpanMake(100, 80)
let span = MKCoordinateSpanMake(0.01, 0.01)
let region = MKCoordinateRegionMake(coordinate, span)
self.mapView.setRegion(region, animated: true)
print("mapView region set")
}
********************* Console Output *********************** 2016-11-19 22:02:14.442048 MapLocator 3 Match[289:23903] [LogMessageLogging] 6.1 Unable to retrieve CarrierName. CTError: domain-2, code-5, errStr:((os/kern) failure)
Entered viewDidLoad
mapView region set
Maybe this is a litle dumb but check that XCode Maps capabilities is active :) .
Tray adding
CoreTelephony
to the AppDelegate maybe? You ViewController implementation is not accessing any CoreTelephony framework methods, thus your problem lies elsewhere.On my iOS device this happens because Settings->Privacy->Location Settings<(app name)->Allow Location Settings isn't set to either "Never" or "While Using the App". Once I set it - it works.
As a solution to a different issue I did the following. Whether this fixes it or just suppresses the msg I don't know, as I was getting the msg but it was never crashing my app.
In Xcode
credit here : https://stackoverflow.com/a/40160779