Les services de localisation sont toujours désactivés sous Mac OS X Lion

2

Un simple programme de services de localisation fonctionnait bien sur ma machine et a soudainement cessé de fonctionner. En explorant plus à fond le problème, je me suis rendu compte que certains processus avaient désactivé les services de localisation dans Préférences Système »Sécurité et confidentialité» Confidentialité .

J'ai coché Activer les services de localisation , mais encore une fois, cela a été désactivé automatiquement.

Après quelques recherches, j'ai constaté qu'il ne s'agissait pas que de mon programme, même les fonctions système intégrées échouaient également à cause de ce problème, par exemple Préférences Système »Date et heure» Le fuseau horaire n'a pas pu obtenir l'emplacement actuel.

Chaque fois que je coche Activer les services de localisation , l’erreur suivante apparaît dans les journaux de la console:

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

Remarques:

  • WiFi est allumé
  • Je n'ai pas installé le simulateur iOS
  • J'utilise Xcode Version 4.5 (4G182)
  • J'utilise Boot Camp et j'effectue le double démarrage de mon MacBook Pro (Mac OS X Lion et Windows 7)
  • Je ne fais que du développement Mac mais pas iOS
rplusg
la source

Réponses:

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
tausif
la source
5
Je pense que votre réponse gagnerait à une petite explication et à un formatage approprié.
Sami Laine
Bien que cela puisse répondre à la question, ce serait une meilleure réponse si vous pouviez expliquer pourquoi .
DavidPostill
Cette réponse ne résout pas le problème pour moi personnellement (je l’ai mise à jour pour n’ajouter que le formatage du code). Ce problème a été résolu pour moi en utilisant la solution que j'ai notée dans ma propre réponse.
Jon L.
0

Je rencontre le même problème dans OSX 10.11 (El Capitan).

J'ai trouvé ce post ( https://jamfnation.jamfsoftware.com/discussion.html?id=5336#responseChild65097 ). J'ai exécuté le script à l'intérieur, et finalement mes services de localisation ont été corrigés.

#!/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
Jon L.
la source
Le script de Tim Kimpton fonctionne si l’un fonctionne en tant que superutilisateur. C'est-à-dire qu'avant d'exécuter l'une quelconque de ces commandes shell, faites-vous le premier root ou superutilisateur du shell. Mes services de localisation sont maintenant activés.