Я на днях получил жалобу от коллеги на то, как новые Mac начали работать в России в последние три года. Это уже неизвестно какая подобная жалоба по счёту, на которую ответил за всё это время, поэтому решил запостить сюда решение проблемы.
Ситуация: у вас (вероятно) новый Mac на чипах M2, M3 или M4. То есть купленный после середины 2022 года. Вы его начали использовать, и либо почти сразу, из коробки, либо чуть позже в нём «отвалилась» геолокация.
Не работают все сервисы, которые запрашивают ваше местоположение: виджет Погоды, автосмена часового пояса и так далее. Макбук (это касается вообще любых Маков, не только ноутбуков) выдаёт ошибки.
Сейчас кратко разберёмся, кто виноват, почему так происходит и как это решается.
Кто виноват и почему так происходит
Виновата Apple. Начиная с macOS 13, сервис геолокации в macOS работает некорректно. Он считывает местоположение устройства не по GPS (его нет в Mac), а по другим факторам, вроде IP-адреса.
В какой-то момент после релиза macOS 13, при частой смене этих факторов сервис ловит критическую ошибку, которая автоматически не «лечится». Иногда после установки очередного апдейта macOS проблема решается, но затем возвращается вновь. У некоторых она пропадает временно, после чего возвращается сама.
Система не отображает какую-то конкретную, понятную ошибку в этих случаях. Просто всё, что требует геолокацию на Mac, перестаёт работать.
Высокая частота жалоб на эту проблему в России – лишь совпадение факторов. Жалоб полно и в англоязычном сегменте интернета. Просто в РФ некоторые особо активно пользуются сервисами и способами смены IP-адреса компьютера. В результате ошибка возникает значительно чаще, чем у тех, кто этим пренебрегает.
Как это решается
Есть два пути: очевидный и грубый, но хотя бы относительно рабочий.
Очевидное решение. Перестаньте баловаться сервисами и способами смены IP-адреса, включая физические. Теоретически, тут всё понятно. В реальности возникает резонный вопрос – а что делать тем, кто часто путешествует? Не обязательно в другие страны – в одной только России 11 часовых поясов. Так что рассматривать его всерьёз не будем.
Грубое решение. Держите bash-скрипт, который надо запускать, если у вас сломалась геопозиция на Mac.
Содержимое скрипта на всякий случай:
#!/bin/bash
pid=$(ps -ef | grep '[l]ocationd' | awk '{print $2}')
sudo kill $pid
sleep 3
if ps -p $pid > /dev/null; then
sudo kill -9 $pid
fi
/usr/libexec/locationd &
Этот скрипт ликвидирует все процессы, связанные с сервисом геолокации. Теперь он перезапустится при первом обращении к нему (например, запуске Погоды). Обычно это решает проблему.
Если скрипт вам не помог, откройте приложение Terminal (Терминал) на вашем Mac и выполните в нём следующую команду:
sudo killall locationd
Далее принцип аналогичный.
Жалобы на этот счёт отправляют в Apple уже два года, но ничего не меняется. Если хотите присоединиться, писать стоит сюда.

12 комментариев
Форум →