Как использовать CLLocationManager в OS X Today Extension?

Я пытаюсь получить местоположение пользователя в Today Extension, и я нахожусь в тупике.

В приложении OS X, когда вы вызываете locationManager.startUpdatingLocation(), появляется диалоговое окно с вопросом, хотите ли вы, чтобы приложение использовало ваше местоположение. Однако в представлении "Сегодня" ничего не возникает после вызова этого метода, и мой делегат не получает вызов для didUpdateLocations или для didFailWithError. CLLocationManager.authorizationStatus() возвращает NotDetermined. Я смотрел документы Apple на Today Extensions и не вижу много о разрешении или о местоположении пользователя.

Как мы планируем получить местоположение пользователя в OS X Today Extension?

Изменить: Следует отметить, что CLLocationManager.locationServicesEnabled() возвращает true в моем приложении OS X и false на моем Today Extension. Что это значит и как я могу это изменить?

Ответ 1

В OS X Today Extensions по умолчанию используется песочница приложений, и вам нужно проверить правильные поля, чтобы позволить Today Extension делать такие вещи, как получить местоположение пользователя и совершать сетевые вызовы.

Перейдите в параметры проекта в Xcode, выберите целевую платформу OS X Today Extension, перейдите на вкладку Возможности, разверните раздел App Sandbox, и установите флажки для возможностей, которые вы хотите (в моем случае, "Расположение и исходящие сетевые подключения" ).