2

Простая программа определения местоположения работала нормально на моей машине и внезапно перестала работать. После дальнейшего изучения проблемы я понял, что в некоторых процессах отключены службы определения местоположения в Системных настройках »Безопасность и конфиденциальность» Конфиденциальность.

Я проверил Enable Location Services, но снова он отключился автоматически.

После некоторых исследований я обнаружил, что это не только моя программа, даже встроенные системные функции также не работают из-за этой проблемы, например, « Системные настройки» Дата и время »Часовой пояс не удалось найти текущее местоположение.

Каждый раз, когда я проверяю Enable Location Services, я вижу следующую ошибку в журналах консоли:

16/10/12 11:23:15.636 AM [0x0-0x42042].com.apple.systempreferences: ERROR,Time,372059595.636,Function,"CLInternalSetLocationServicesEnabled",CLInternalSetLocationServicesEnabled failed
16/10/12 11:23:15.638 AM [0x0-0x42042].com.apple.systempreferences: STACK,Time,372059595.636,1   CoreLocation                        0x00007fff8f9957be CLInternalSetLocationServicesEnabled + 110

Заметки:

  • WiFi включен
  • Я не установил iOS Симулятор
  • Я использую Xcode Version 4.5 (4G182)
  • Я использую Boot Camp и сделал мою MacBook Pro двойной загрузкой (Mac OS X Lion и Windows 7)
  • Я занимаюсь только разработкой Mac, но не iOS

2 ответа2

1
#!/bin/sh
launchctl unload /System/Library/LaunchDaemons/com.apple.locationd.plist

defaults write /System/Library/LaunchDaemons/com.apple.locationd Disabled -bool false 

then

launchctl load /System/Library/LaunchDaemons/com.apple.locationd.plist

exit 0
0

Я сталкиваюсь с той же проблемой в OSX 10.11 (El Capitan).

Я нашел этот пост (https://jamfnation.jamfsoftware.com/discussion.html?id=5336#responseChild65097). Я запустил сценарий внутри, и, наконец, мои службы определения местоположения были исправлены.

#!/bin/bash

########################## SET SYSTEM TIME  ##################################################
#
# Written by Tim Kimpton
#
# using information from https://jamfnation.jamfsoftware.com/discussion.html?id=5336
#
# If the machine is 5 minutes out of the kdc the machine will not bind to the domain.
#
# This script does the folling to ensure the time is correct
#
# 1. Unload the launch daemon used for location services
#
# 2. Get the hardware UUID of the machine and put it in the location services db
#
# 3. Enable location services
#
# 4. Correct permissions on the database file used for location services
#
# 5. Set the time zone to update the time automatically
#
# 6. Set the network time to on
#
# For information see https://jamfnation.jamfsoftware.com/discussion.html?id=5336
###############################################################################################

######################### ENVIRONMENT VARIABLES #######################

# Get the Hardware UUID from system profiler
uuid=$(/usr/sbin/system_profiler SPHardwareDataType | grep "Hardware UUID" | cut -c22-57)

####################### DO NOT MODIFY BELOW THIS LINE #################

# Unload the launch daemon
/bin/launchctl unload /System/Library/LaunchDaemons/com.apple.locationd.plist

# Write the UUID to the hidden plist file and initialise it
/usr/bin/defaults write /var/db/locationd/Library/Preferences/ByHost/com.apple.locationd."$uuid" LocationServicesEnabled -int 1

# Enable Location Services
/usr/bin/defaults write /var/db/locationd/Library/Preferences/ByHost/com.apple.locationd.notbackedup."$uuid" LocationServicesEnabled -int 1

# Make sure the permissions on the database file is correct
/usr/sbin/chown -R _locationd:_locationd /var/db/locationd
/bin/launchctl load /System/Library/LaunchDaemons/com.apple.locationd.plist

# Set time zone to update automatically
/usr/bin/defaults write /Library/Preferences/com.apple.timezone.auto Active -bool true

# Set network time to on
/usr/sbin/systemsetup -setusingnetworktime on > /dev/null 2>&1

exit 0

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .