App tué par SIGKILL lors de la modification des paramètres de confidentialité
Mon application iOS accès de l'utilisateur, Photos avec ALAssetsLibrary
. Quand je change les paramètres de confidentialité de l'application (Paramètres → Confidentialité → Photos), l'application se fait tuer par le système (SIGKILL
). Est-ce un bug?
- Uh-oh... j'ai test avec Apple MyImagePicker et obtenir le même incident.
- est-il en panne ou simplement de redémarrer? J'ai également vu ce comportement, mais qui semble être de notre de notre contrôle.
- c'est juste un crash.
- Bon rapport, bon test. J'ai élaboré un peu dans ma réponse concernant UIImagePickerController; c'est clairement le même bug. Merci de poster à ce sujet.
- Voir la même chose ici, avec le Calendrier des paramètres de confidentialité.
- Comme d'iOS7, au moins, lors de l'exécution de l'application sur le périphérique approprié (PAS dans Xcode périphérique de débogage ou simulateur), l'application sera automatiquement redémarré. Si vous poignée de le redémarrer l'amende, l'utilisateur ne saura jamais l'app "en panne".
- Salutations de l'avenir! Passe encore dans iOS 9. J'ai ajouté un peu de "l'application peut être nécessaire de redémarrer" avertissement avant de diriger l'utilisateur vers les paramètres.
- Passe encore dans iOS10, mais semble être le comportement attendu. Lors de l'application des autorisations sont modifiées, iOS redémarrage de l'application en arrière-plan.
- Se produit toujours sur IOS11 (au moins dans le simulateur). L'App se ferme lorsque les paramètres de confidentialité sont basculés. À en juger par l'info ici, Il semble que ce soit prévu comportement et ne changera pas de sitôt
- Permettez-moi d'ajouter qu'il passe encore sur iOS 12 :'(
Vous devez vous connecter pour publier un commentaire.
Je pense que c'est un bug ou au moins mal documentée et un comportement inattendu. Mais il ne se bloque pas, il est juste obligé de redémarrer. Vous recevrez un SIGKILL message mais pas de Crash.
Si vous êtes inscrit à des développeurs d'apple, vous pouvez vérifier leurs forums pour discuter de cette question
Je ne sais pas du tout de la manière d'éviter ce problème mais n'hésitez pas à remplir un rapport de bogue avec apple. Il est dit qu'ils utilisent bug doublons comme une façon de mesurer le bug de la gravité.
Peut-être que vous pouvez stocker votre application afin de la restaurer quand il redémarre.
Se passe bien lors de l'utilisation de UIImagePickerController. La séquence qui va comme ceci:
Vous montrer la UIImagePickerController. La première fois, la petite alerte demande à l'utilisateur l'autorisation d'utiliser la photo de la bibliothèque. Disons que l'utilisateur dit non.
Tout ce que l'utilisateur peut faire avec le contrôleur de sélecteur à ce stade est d'annuler, donc, nous allons supposer que ce qui se passe.
Sur certains, plus tard pour l'occasion, vous montrer la UIImagePickerController. Il contient maintenant une noncustomizable message disant qu'il n'y a pas d'accès à la bibliothèque de photos, mais que l'utilisateur peut activer l'accès dans les Paramètres.
L'utilisateur passe pour les Réglages et permet d'accéder à la bibliothèque de photos pour cette application.
L'application se bloque en arrière-plan. Il n'importe pas de savoir si l'utilisateur a annulé le sélecteur ou à gauche de l'affichage.
J'ai déposé un bug, et je vous suggère de faire de même, pour votre situation. Apple a introduit une nouvelle intimité système iOS 6 et clairement les problèmes n'ont pas été exploités.
De recherche pour le mot "tuer" dans ce PDF:
http://adcdownload.apple.com/wwdc_2012/wwdc_2012_session_pdfs/session_710__privacy_support_in_ios_and_os_x.pdf
iOS tue les applications lors de certaines autorisations de changement.
Cette info est difficile à retracer. Ce n'est pas dans l'un des "guides" (préférences guide de programmation, par exemple).
Lorsque vous testez votre application à l'aide du simulateur.Modifier les autorisations de l'application vous donne un point d'arrêt.Vous pouvez taper "c" dans la console pour rendre l'application continue à fonctionner et va revenir à l'état initial.Mais dans votre périphérique réel,qui n'est pas l'histoire.Il vient de redémarrer l'application.
Quelques fois SIGKILL erreur, comme une interruption d'erreur, il donne le signal pour iOS qui vous devez redémarrer votre application et sur le même temps, nous sommes la gestion de app tâches et sur la façon de l'interruption de l'envoi de message n'est pas géré par l'app.
Dans mon cas..... Je ne peux pas autoriser les photos et la caméra à l'accès à l'application et à chaque fois que je me permettant d'accéder à ces fonctions, j'réduire l'application et permet à ces paramètres. Comme je l'ai activé cette fonction, iOS obtenir une interruption et application reçoit ce mais ne peut pas le manipuler et le résultat de notre application se termine ou fermé.
OK mon 1er temps d'écrire une réponse. J'espère l'obtenir droite 🙂
Que vous accédez à la Bibliothèque de biens à l'aide de la assetForURL:resultBlock:failureBlock: ?
Si vous êtes, alors, très probablement, vous ne sont pas de la manipulation de la défaillance du bloc de l'ALAssetLibrary.
Vous pourriez faire quelque chose comme
Ainsi, lorsque votre application n'a pas accès à la bibliothèque de photos, il va demander à l'utilisateur de le faire.