usage the requestalwaysauthorization permission nslocationwheninuseusagedescription nslocationalwaysusagedescription info description always ios permissions ios11

ios - the - ¿Qué diferencia hay entre NSPhotoLibraryAddUsageDescription y NSPhotoLibraryUsageDescription?



nslocationwheninuseusagedescription key is defined in the info plist file (4)

Como puedo ver en el documento, la diferencia entre dos es:

  • NSPhotoLibraryAddUsageDescription: tiene permiso para escribir solo, no leer.

  • NSPhotoLibraryUsageDescription: Puede leer y escribir fotos.

De las documentaciones de Apple para NSPhotoLibraryUsageDescription:

"Aunque estas claves gobiernan el acceso de lectura y escritura a la biblioteca de fotos del usuario, es mejor usar NSPhotoLibraryAddUsageDescription si su aplicación solo necesita agregar recursos a la biblioteca y no necesita leer ningún elemento " .

Mi aplicación se bloqueó hoy al actualizar en Xcode9, probando en iOS11. Después de agregar NSPhotoLibraryAddUsageDescription entonces funciona, incluso yo ya tenía NSPhotoLibraryUsageDescription .

He leído sobre ellos, uno es compatible desde iOS6, uno iOS11, pero Apple no mencionó cuál es la diferencia entre ellos. https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW73

Si mantengo el nuevo ( NSPhotoLibraryAddUsageDescription ), ¿funcionará también para iOS 8 o tengo que mantener ambos?


Para responder la última pregunta por mi cuenta:

NSPhotoLibraryUsageDescription declarar tanto la NSPhotoLibraryUsageDescription NSPhotoLibraryAddUsageDescription NSPhotoLibraryUsageDescription como la NSPhotoLibraryAddUsageDescription de NSPhotoLibraryAddUsageDescription de NSPhotoLibraryAddUsageDescription para obtenerlo FUNCIONA tanto en iOS 9, 10.3 como en 11.

Técnicamente es diferente. Solía ​​no declarar NSPhotoLibraryUsageDescription , funciona bien en iOS 9 y 11, pero falló y se estrelló en iOS 10.3.

Esta es una versión realmente mala que controla Apple, mientras que la versión superior no cumple y admite permisos de versiones anteriores.


Vas a necesitar los dos.
Como una vez que intenté usar UIActivityViewController para guardar la imagen en la biblioteca, mi versión de iPhone es 11.3, solo uso NSPhotoLibraryUsageDescription y se NSPhotoLibraryUsageDescription porque necesito NSPhotoLibraryAddUsageDescription .
Pero ios 9.3 no se estrella.