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
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
- Click on your active scheme name right next to the Stop button
- Click on Edit Scheme....
- in Run (Debug) select the Arguments tab
- in Environment Variables click +
- add variable: OS_ACTIVITY_MODE = disable
credit here : https://stackoverflow.com/a/40160779
Maybe this is a litle dumb but check that XCode Maps capabilities is active :) .
来源:https://stackoverflow.com/questions/40700797/unable-to-retrieve-carriername