Ответ 1
Я ответил на этот вопрос раньше на SO, и использование симулятора не является точным способом тестирования для -startMonitoringSignificantLocationChanges.
Этот метод опирается главным образом на триангуляцию ячеистой башни и отключение руки. Иногда вы можете получить начальное исправление от симулятора, но это все. После этого он не обновит какое-либо другое местоположение. Вам нужно будет проверить на устройстве, чтобы проверить, правильно ли ваша программа отвечает на этот метод.
Один из вариантов - проверить любую логику, которую вы можете выполнить внутри своих обратных вызовов для -didUpdateToLocation, и вместо этого использовать -startUpdatingLocation. Хотя это большой недостаток для работы от батареи, это позволит вам получать точные обновления местоположения для тестирования. Когда у вас есть все ваши изломы, разработанные в симуляторе, переведите все на важные методы изменения местоположения и протестируйте on-device.
Надеюсь, что это поможет.