2017-04-05 1 views
0

Première question posée ici alors gardez-moi.kCLErrorDomain error 5: CLLocationManager ne me laissera pas enregistrer plus de 10 appareils sur mon iPhone 7

J'ai un projet qui dépend fortement des balises et de CoreLocation. Jusqu'à présent, tout fonctionne bien avec tous les appareils testés (peut-être 10-15 modèles différents de l'iPhone 7) et j'enregistre mes 13 balises sans problème. Pour une raison obscure, mon iPhone 7 ne prendra pas plus de 10. Après cela, je reçois le:

L'opération n'a pas pu être complétée. (Erreur kCLErrorDomain 5.)

Si je supprime une balise précédemment enregistrée correctement, la 11ème sera enregistrée au prochain démarrage. Si je remets celui que j'ai enlevé, il ne s'enregistrera plus. Donc, on dirait que la limite est 10 ... ce qui est bizarre. Avant la dernière mise à jour d'iOS, j'ai eu mon téléphone pour enregistrer tous les 13, mais maintenant il ne sera plus. Je ne peux pas vraiment dire que c'est à cause de la mise à jour ou parce que mon téléphone a redémarré. J'essaye de trouver un autre téléphone pour reproduire le problème et je mettrai à jour la question si je fais. J'ai essayé l'évidence: remise en marche, remise à zéro, etc ...

Merci, MAB

+0

Il existe une limite à l'échelle du périphérique pour le nombre de régions de balise pouvant être enregistrées. Si d'autres applications ont déjà enregistré des régions de balises, le nombre d'applications que votre application peut enregistrer est réduit. Il est considéré comme "sympa" si une application utilise un seul uuid pour toutes ses balises, ce qui permet à une seule région d'enregistrer tous les emplacements de ces applications. – Paulw11

+0

Merci! Je ne suis pas sûr de comprendre complètement. Nous utilisons un seul UUID pour toutes les balises dans notre application. Suis-je encore limité par d'autres applications installées? – reynoldkirby

+0

Oui, le nombre de régions de balise est une limite à l'échelle du système. Si toutes vos balises partagent un uuid, alors vous n'avez besoin que d'une seule région de balise (au moins jusqu'à ce que vous obteniez la première entrée de la région) – Paulw11

Répondre

0

Pour être 100% sûr qu'il ne se reproduise jamais, sur tous les téléphones, vous devez attendre cet appel délégué avant d'enregistrer une balise comme documenté:

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { 
    // Now you can register you beacons if CLAuthorization is OK 
} 

Peut travailler sans attendre, pourrait aussi bien pas. Correction du problème pour de bon. Vous obtenez également cette erreur si vous enregistrez des balises sans le bon CLAuthorizationStatus.