CLGeocoder игнорируется в приложении командной строки Swift - PullRequest
0 голосов
/ 28 февраля 2020

Я строю инструмент командной строки в Swift 5, который должен получить широту и длину строки с городом и штатом. При запуске приложения из Xcode метод geocodeAddressString просто игнорируется. Нет ошибок, просто пропущено. При исследовании этой проблемы я думаю, что мне нужно дать своему приложению возможность получить разрешение на сетевой вызов.

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

.

Поток 1: EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0)

Код внутри класса, который работает ниже, прекрасно работает на игровой площадке, заменяя переменную местоположения жестко закодированной строкой, такой как "Cincinnati, OH," возвращение лат и долго, как ожидалось. Может ли кто-нибудь сказать мне, как предоставить инструменту командной строки доступ к защищенным ресурсам, таким как сетевой доступ или службы определения местоположения (хотя я не думаю, что это требуется, поскольку я вообще не использую GPS или местоположение пользователя - просто отправляю строки города и штата в веб-сервис Apple. Спасибо за ваше время.

import CoreLocation

class LatLong {

    func forwardGeoCode (location: String) {
        let geocoder = CLGeocoder()
        print(location)
        geocoder.geocodeAddressString(location) {placemarks, error in
            let placemark = placemarks?.first
            let lat = placemark?.location?.coordinate.latitude
            let lon = placemark?.location?.coordinate.longitude
            print("Lat: \(String(describing: lat)), Lon: \(String(describing: lon))")
        }
    }
}
...