it-swarm.com.de

Was ist der Unterschied zwischen NSPhotoLibraryAddUsageDescription und NSPhotoLibraryUsageDescription?

Meine App ist heute beim Update auf Xcode9 abgestürzt und wird auf iOS11 getestet. Nach dem Hinzufügen von NSPhotoLibraryAddUsageDescription funktioniert es, obwohl ich bereits NSPhotoLibraryUsageDescription hatte.

Ich habe über sie gelesen, eines unterstützt seit iOS6, ein iOS11, aber Apple erwähnte nicht, welchen Unterschied sie untereinander haben . https://developer.Apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference) /Artikel/CocoaKeys.html#//Apple_ref/doc/uid/TP40009251-SW73

Wenn ich das Neue (NSPhotoLibraryAddUsageDescription) verwende, wird es auch für iOS 8 funktionieren, oder muss ich beide behalten?

29
TomSawyer

Um die letzte Frage selbst zu beantworten:

Sie müssen sowohl NSPhotoLibraryUsageDescription als auch NSPhotoLibraryAddUsageDescription deklarieren, damit es unter iOS 9, 10.3 und 11 FUNKTIONIERT.

Technisch gesehen ist das anders .. Ich habe früher nicht NSPhotoLibraryUsageDescription angegeben, es funktioniert gut unter iOS 9 und 11, ist aber unter iOS 10.3 fehlgeschlagen und abgestürzt.

Dies ist eine wirklich schlechte Version, die von Apple gesteuert wird, während eine ältere Version die Erlaubnis für eine ältere Version nicht erfüllt.

4
TomSawyer

Einfach von Apple Offizielles Dokument erhalten 

Klicken Sie einfach auf das Bild oben für ZOOM und lesen Sie es.

Weitere Informationen zu: 

24
Govaadiyo

Wie ich im Dokument sehen kann, besteht der Unterschied zwischen zwei:

  • NSPhotoLibraryAddUsageDescription: Sie haben nur die Berechtigung zum Schreiben, kein Lesen. 

  • NSPhotoLibraryUsageDescription: Sie können Fotos sowohl lesen als auch schreiben.

Aus Apple-Dokumentationen für NSPhotoLibraryUsageDescription:

"Obwohl dieser Schlüssel den Lese- und Schreibzugriff auf die Fotobibliothek des Benutzers regelt, ist die Verwendung von NSPhotoLibraryAddUsageDescription am besten, wenn Ihre App nur Assets zur Bibliothek hinzufügen und keine Assets lesen muss."

8
Tien

Du brauchst beides .
Weil ich einmal versucht habe, UIActivityViewController zu verwenden, um ein Bild in der Bibliothek zu speichern, ist meine iPhone-Version 11.3. Ich verwende nur NSPhotoLibraryUsageDescription und der Absturz, weil ich NSPhotoLibraryAddUsageDescription..__ brauche.
Aber iOS 9.3 stürzt nicht ab.

2
Linh Quang Pham

Es gibt einen Unterschied für den Schreibzugriff, der auf der API und der iOS-Version basiert, die um Erlaubnis bitten, also benötigen Sie beides.

Meine App hatte bereits NSPhotoLibraryUsageDescription, um PHPhotoLibrary zum Speichern von Bildern zu verwenden. 

Unter iOS 11 funktioniert das immer noch, aber wenn meine App noch keine Berechtigung hat, führt das Freigeben eines Bildes über "Save Image" in einem UIDocumentInteractionController zu einem Absturz mit einer Warnung über NSPhotoLibraryAddUsageDescription. Wenn die Berechtigung bereits über PHPhotoLibrary erteilt wurde, benötige ich anscheinend keine NSPhotoLibraryAddUsageDescription für "Save Image".

1
a4o