BSMachError при запросе авторизации местоположения Always - PullRequest
0 голосов
/ 11 октября 2018

В соответствии с рекомендациями Apple (если я правильно понимаю), я сначала запрашиваю WhenInUse авторизацию, чтобы включить базовую поддержку местоположения моего приложения (я делаю это в AppDelegate) и увеличитьразрешения на Always только в ViewController, который фактически использует эту функцию.

// AppDelegate.swift
class AppDelegate: UIResponder, UIApplicationDelegate, CLLocationManagerDelegate {

var m_location_manager = CLLocationManager()

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    m_location_manager.delegate = self
    if CLLocationManager.authorizationStatus() != .authorizedWhenInUse {
        m_location_manager.requestWhenInUseAuthorization()
    }
}

// MyViewController
class MyViewController: UIViewController, CLLocationManagerDelegate, GMSMapViewDelegate {

var m_location_manager = CLLocationManager()
override func viewDidLoad() {
    super.viewDidLoad()
    m_location_manager.delegate = self
    if CLLocationManager.authorizationStatus() != .authorizedAlways {
        m_location_manager.requestAlwaysAuthorization()
    }
    m_location_manager.desiredAccuracy = kCLLocationAccuracyBest
    m_location_manager.startUpdatingLocation()
}

Мой info.plist выглядит так: enter image description here

КогдаПри запуске приложения меня действительно спрашивают, хочу ли я авторизовать сервисы WhenInUse location, и все в порядке.Однако, когда в MyView, и, хотя все кажется, что все в порядке (без сбоев, кажется, что все работает), я получаю в консоли две подобные ошибки:

2018-10-11 15:17:26.174617+0300 MyApp[1174:245307] [Common] _BSMachError: port cd03; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"

Обратите внимание, что упомянутый портне всегда одно и то же (я видел d303, 163603 и другие).

...