Mon application s'est écrasée aujourd'hui lors de la mise à jour sur Xcode9 et des tests sur iOS11 . Après l'ajout de NSPhotoLibraryAddUsageDescription
, alors cela fonctionne, même si j'avais déjà NSPhotoLibraryUsageDescription
.
J'ai lu à leur sujet, un supporté depuis iOS6, un iOS11 mais Apple n'a pas mentionné la différence qui les sépare . https://developer.Apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/ Articles/CocoaKeys.html # // Apple_ref/doc/uid/TP40009251-SW73
Si je conserve le nouveau (NSPhotoLibraryAddUsageDescription
), cela fonctionnera-t-il également pour iOS 8 ou devrai-je les conserver tous les deux?
Pour répondre seul à la dernière question:
Vous devez déclarer à la fois NSPhotoLibraryUsageDescription
et NSPhotoLibraryAddUsageDescription
pour que cela fonctionne sous iOS 9, 10.3 et 11.
Techniquement, c'est différent… .J'ai l'habitude de ne pas déclarer NSPhotoLibraryUsageDescription
, cela fonctionne très bien sur iOS 9 et 11 mais a échoué et s'est écrasé sur iOS 10.3.
C'est une très mauvaise version contrôlant d'Apple alors que la version supérieure ne s'y conforme pas et ne prend pas en charge les autorisations des versions antérieures.
Obtenir simplement du document officiel Apple
Cliquez simplement sur l'image ci-dessus pour ZOOM et lisez-la.
Pour plus d'informations sur:
NSPhotoLibraryAddUsageDescription : Si vous souhaitez enregistrer une photo/image dans votre photothèque. Pour iOS11 and +
NSPhotoLibraryUsageDescription : Si vous voulez accéder à votre photothèque. Pour iOS10 and +
Comme je peux le voir dans le document, la différence entre les deux est la suivante:
NSPhotoLibraryAddUsageDescription: Vous êtes autorisé à écrire uniquement, pas de lecture.
NSPhotoLibraryUsageDescription: vous pouvez lire et écrire sur Photos.
Dans les documentations Apple pour NSPhotoLibraryUsageDescription:
"Bien que ces clés régissent les accès en lecture et en écriture à la bibliothèque de photos de l'utilisateur, il est préférable d'utiliser NSPhotoLibraryAddUsageDescription si votre application n'a besoin que d'ajouter des éléments à la bibliothèque et n'a pas besoin de lire des éléments."
Tu vas avoir besoin des deux .
Parce qu'une fois que j'ai essayé d'utiliser UIActivityViewController
pour enregistrer une image dans une bibliothèque, ma version d'iphone est la 11.3, je n'utilise que NSPhotoLibraryUsageDescription
et son plantage, car j'ai besoin de NSPhotoLibraryAddUsageDescription
.
Mais iOS 9.3 ne plante pas.
Il existe une différence entre l'accès en écriture et le fait que l'API demande l'autorisation ainsi que la version iOS. Vous avez donc besoin des deux.
Mon application avait déjà NSPhotoLibraryUsageDescription afin d’utiliser PHPhotoLibrary pour enregistrer des images.
Sur iOS 11, cela fonctionne toujours, mais si mon application n'a pas encore obtenu l'autorisation, le partage d'une image via "Enregistrer l'image" dans un UIDocumentInteractionController provoque un crash avec un avertissement concernant NSPhotoLibraryAddUsageDescription. Si l'autorisation a déjà été accordée via PHPhotoLibrary, je ne semble pas avoir besoin de NSPhotoLibraryAddUsageDescription pour "Enregistrer l'image".