Ответ 1
Используйте Xcodes Debug > Attach to Process > Идентификатор процесса (PID) или Name...: вы можете указать имя своего процесса, и Xcode будет ждать, пока он не запустится, чтобы подключиться и запустить сеанс отладки.
С помощью Apple docs в startMonitoringSignificantLocationChanges
нам сообщают, что приложение может использовать следующее поведение, используя API изменения значений:
Если вы запустите эту услугу и ваше приложение будет завершено, система автоматически возобновит приложение в фоновом режиме, если придет новое событие. В таком случае словарь параметров передается в метод locationManager: didUpdateLocations: метод вашего делегата приложения содержит ключ UIApplicationLaunchOptionsLocationKey, чтобы указать, что ваше приложение было запущено из-за события местоположения. После перезапуска вы все равно должны сконфигурировать объект менеджера местоположений и вызвать этот метод для продолжения приема событий местоположения. Когда вы перезапускаете службы определения местоположения, текущее событие доставляется вашему делегату немедленно. Кроме того, свойство location объекта вашего менеджера местоположений заполняется самым последним объектом местоположения еще до того, как вы начнете выполнять службы определения местоположения.
Источник: Apple Docs
Мой вопрос: как я могу отлаживать и/или тестировать это? Как только я завершаю приложение, я понятия не имею, что происходит (например, отладка сеанса убивается с помощью приложения). Когда я узнаю, когда iOS запустил мое приложение в фоновом режиме с ключом launchOption из UIApplicationLaunchOptionsLocationKey
? Что еще более важно, как узнать, работает ли блок кода, который выполняется, правильно ли работает? Как я могу быстро протестировать этот сценарий, не обойтись после завершения моего приложения, надеясь, что код, который я написал, волшебным образом работает? Любая помощь очень ценится!
Используйте Xcodes Debug > Attach to Process > Идентификатор процесса (PID) или Name...: вы можете указать имя своего процесса, и Xcode будет ждать, пока он не запустится, чтобы подключиться и запустить сеанс отладки.