Разрешен ли проект инструмента командной строки Xcode разрешения CoreLocation? - PullRequest
12 голосов
/ 27 декабря 2011

У меня есть проект Xcode 'Command Line Tool', написанный на C ++.Недавно я добавил платформу CoreLocation и связанный код для поиска местоположения пользователей.

Обычно, когда я внедряю платформу CoreLocation, OS X запрашивает у меня разрешение на приложение.Это не происходит с моим инструментом командной строки.Это связано с тем, что нет связанного окна / меню?

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

Любая информация будет принята с благодарностью.

Ответы [ 3 ]

2 голосов
/ 02 января 2012

Некоторые вещи в Mac OS требуют подключения к серверу окон. Примером этого является NSImage, и может быть, что службам определения местоположения также требуется такое соединение.

Однако я не знаю, как сделать такое соединение без вызова NSApplicationMain.

Что вы можете сделать, это написать вспомогательное приложение, которое не отображается в док-станции (например, приложение строки состояния), но вызывает NSApplicationMain. Затем это приложение будет выполнять все службы определения местоположения и взаимодействовать с вызывающим процессом (вашим CLI) через стандартный вывод или сокеты или что-то подобное.

1 голос
/ 05 января 2012

Вы также импортируете Foundation.h в свой проект?Вы должны проверить все зависимости, которые есть у CoreLocation, и убедиться, что они попадают в ваш проект.CoreLocation также написан на Objective-C, поэтому некоторые вызовы могут не быть перехвачены с ++ вашим компилятором.

0 голосов
/ 02 января 2012

когда CoreLocation запрашивает данные о местоположении, Mac выдаст окно с сообщением, запрашивающее у пользователя разрешения, если вы установите флажок Не спрашивать меня снова и нажмете OK, то оно никогда не будет запрашивать сообщение, если только выСбросить предупреждения »в области настроек безопасности, но если вы переместите приложение командной строки в другой каталог, Mac снова запросит разрешение.Я считаю, что это разрешение хранится с полным путем приложения.

...