Geofence iOS8: nécessite un mode d'arrière-plan pour iOS Geofencing

J'ai utilisé le géofencing dans mon application.

Geofence fonctionnalité discription:

App a deux types de fonctionnalités lors de l'input ou de la sortie de la région:

  1. Réinitialiser la clôture: Si l'user entrera dans la région et que cette région a la fonctionnalité de réinitialiser la clôture, l'application appellera un service Web et obtiendra la nouvelle list de clôture. Cette fonctionnalité devrait également fonctionner en mode d'arrière-plan.

  2. App Open: Si l'user entrera dans la région et que cette région a la fonctionnalité de app_open, l'application sera

    *a. Show alert, if the app is in foreground mode* *b. Show notification, if the app is in background mode* 

J'ai utilisé la surveillance de région pour atteindre cette fonctionnalité et je ne veux pas non plus utiliser de changement de localization significatif car l'application a installé des clôtures sur un rayon de 100 à 200 mètres.

Maintenant, mon problème est que,

  1. Dois-je utiliser le mode d'arrière-plan "App registres pour les mises à jour de localization" pour surveiller le passage de la région
  2. J'ai utilisé le code ci-dessous pour appeler le service web de 'reset fence' en mode d'arrière-plan.

    – (void) beginBackgroundUpdateTask {self.backgroundUpdateTask = [[applicationUIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: ^ {[self endBackgroundUpdateTask]; }]; }

    – (void) endBackgroundUpdateTask {[[UIApplication sharedApplication] endBackgroundTask: self.backgroundUpdateTask]; self.backgroundUpdateTask = UIBackgroundTaskInvalid; }

Donc, devrais-je appliquer n'importe quel paramètre dans info.plist en raison de [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandle.

Merci de me guider plus loin. J'ai cherché beaucoup sur internet mais je n'ai toujours pas trouvé de réponse spécifique à mes deux questions ci-dessus.

Remarque: L'application est déjà rejetée par Apple en raison du mode d'arrière-plan "Mises à jour de l'location". S'il vous plaît me suggérer le path afin que Apple ne rejette pas l'application.

Voici la raison.

2.16: Les applications multitâches peuvent uniquement utiliser les services d'arrière-plan pour les usages prévus: VoIP, lecture audio, localization, achèvement des tâches, notifications locales, etc. —– 2.16 —– Nous avons constaté que votre application utilise un mode d'arrière-plan, mais n'inclut pas les fonctionnalités qui nécessitent l'exécution de ce mode de manière persistante. Ce comportement n'est pas conforme aux consignes de révision de l'App Store. Nous avons remarqué que votre application déclare la prise en charge de l'location dans la key UIBackgroundModes de votre Info.plist, mais n'inclut pas les fonctionnalités nécessitant une localization persistante. Il serait approprié d'append des fonctionnalités qui nécessitent une utilisation persistante des mises à jour de localization en time réel lorsque l'application est en arrière-plan ou supprimez le paramètre "location" de la key UIBackgroundModes. Si votre application ne nécessite pas de mises à jour de position persistantes et en time réel, nous vous recommandons d'utiliser le service de localization de changement significatif ou le service de localization de surveillance de région.

Merci beaucoup d'avance.

Notre application a été rejetée pour la même raison. Si tout ce que vous faites est la surveillance de la région, vous n'avez pas besoin du mode d'arrière-plan des mises à jour de l'location. Nous l'avons éteint et la surveillance de notre région fonctionne comme souhaité. Même si l'application n'est pas en cours d'exécution, elle est lancée par iOS lorsque l'user entre dans la région. Nous avons renvoyé l'application et elle a été approuvée.