быстро не могу получить маяк - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть проект 2 года назад, который я только что обновил с swift 3 до 4. Никаких реальных существенных изменений, за исключением получения новых разрешений plist.Запустил приложение на реальном устройстве, и маяк не был найден.UUID, мажорные и минорные, проверены много раз, чтобы быть действительными и правильными.Маяк BKON сидит рядом с телефоном.

plist выглядит примерно так: enter image description here

менеджер местоположения настроен так же, как и в viewDidLoad

 var locationManager:CLLocationManager!

 override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.  

    print("locationManager setup")
    locationManager = CLLocationManager()
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.requestAlwaysAuthorization()
    locationManager.delegate = self
}

Регион / настройка маяка

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
    if status == .authorizedAlways {
        if CLLocationManager.isMonitoringAvailable(for: CLBeaconRegion.self) {
            if CLLocationManager.isRangingAvailable() {
                setupBeacons()
            }
        }
    }
}
func setupBeacons(){
    print("setupBeacons")
    if let beaconUUID = UUID.init(uuidString: "58de905b-3b54-bf9d-2d01-4dc018eaf6cc") {
        let region1 = CLBeaconRegion(
            proximityUUID: beaconUUID,
            major: 998,
            minor: 1330, //2121
            identifier: "Crossing1")
        region1.notifyOnEntry = true
        region1.notifyOnExit = true
        region1.notifyEntryStateOnDisplay = true
        startMonitoringBeacon(region: region1)
    }
}
func startMonitoringBeacon(region: CLBeaconRegion){
    locationManager.startMonitoring(for: region)
    locationManager.startRangingBeacons(in: region)
}

Затем мне задают обратный вызов делегата примерно так:

func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
    print("didRangeBeacons: found \(beacons.count)")
}

Но маяки не найдены.Нет ошибок или чего-либо еще в других методах делегата (rangeBeaconsDidFailFor, мониторингDidFailFor и didFailWithError).Я уже пытался удалить все маяки из менеджера местоположений, удалить, переустановить приложение несколько раз и перестроить приложение с нуля.

Что-то мне не хватает?

...