Mon application iOS accède aux photos de l'utilisateur avec ALAssetsLibrary
. Lorsque je modifie les paramètres de confidentialité de l'application (Paramètres → Confidentialité → Photos), l'application est supprimée par le système ( SIGKILL
). Est-ce un bug?
Réponses
Trop de publicités?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.
Cela se produit aussi 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.
Tous les utilisateurs peuvent 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.
OK ma 1ère fois pour écrire une réponse. J'espère que j'ai bien compris :)
Accédez-vous à la bibliothèque d'actifs à l'aide de assetForURL: resultBlock: failureBlock:?
Dans ce cas, le plus probablement, vous ne gérez pas le bloc d’erreur de ALAssetLibrary.
Vous pourriez faire quelque chose comme
ALAssetsLibraryAccessFailureBlock failureBlock = ^(NSError *error)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Access to Photo Library is Denied "
message:@"Please allow <YOUR APP NAME> to access your Photo library from Privacy Settings"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
Ainsi, lorsque votre application n'a pas accès à la photothèque, elle demandera à l'utilisateur de le faire.