Исходное отслеживание местоположения iOS на тестовых устройствах

На основе этого пример приложения и этот пост Stackoverflow: Периодические обновления местоположения фона iOS, мне удалось создать рабочую реализацию для периодического отслеживания местоположения фона.

Все работает хорошо на устройстве, и я устанавливаю приложение из Xcode, но для каждого тестировщика я отправляю приложение через crashlytics, приложение все еще не работает в фоновом режиме.

Нужно ли что-либо делать с режимами отладки/выпуска или профилей подготовки?

Ответ 1

Вы уверены, что правильно используете разрешения на размещение фона? Вы тестируете/развертываете на iOS 7 или iOS 8? Проверьте эту статью за дополнительной информацией: http://nshipster.com/core-location-in-ios-8/

Ответ 2

Вам нужно использовать метод applicationDidEnterBackground для получения местоположения обновления в фоновом режиме. Я загружаю ваш источник из github, в этом не реализован метод ниже:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
}

Вам нужно использовать вот так:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [self.shareModel.anotherLocationManager stopMonitoringSignificantLocationChanges];

    if(IS_OS_8_OR_LATER) {
        [self.shareModel.anotherLocationManager requestAlwaysAuthorization];
    }

    [self.shareModel.anotherLocationManager startMonitoringSignificantLocationChanges];
}

Для получения дополнительной информации вы можете сослаться на ссылку: http://mobileoop.com/getting-location-updates-for-ios-7-and-8-when-the-app-is-killedterminatedsuspended

Ответ 3

Привет, вы пробовали следующее в Appdelegate?

- (void)applicationWillResignActive:(UIApplication *)application
{
     [locationManager startUpdatingLocation];
     //`locationManager` is object of `CLLocationManager` 
}