2016-06-17 20 views
11

Meine App stürzt beim Ausführen im Simulator jedes Mal ab, wenn ich versuche, eine Autorisierung für die Fotobibliothek anzufordern. Ich verwende den folgenden Code in meinem AppDelegate in didFinishLaunchingWithOptions:xcode 8 PHPhotoLibrary.requestAuthorization verursacht Absturz

if PHPhotoLibrary.authorizationStatus() != PHAuthorizationStatus.authorized { 
    PHPhotoLibrary.requestAuthorization({ (status: PHAuthorizationStatus) in 

    }) 
} 

Mit Xcode 8 Beta mit schnellen 3,0.

Antwort

23

Bei meinen Tests gibt iOS 10 keine sinnvollen Fehlermeldungen aus, es sei denn, Sie verwenden ein tatsächliches Gerät. In diesem speziellen Fall haben Sie wahrscheinlich den Schlüssel NSPhotoLibraryUsageDescription nicht in Ihrer Datei Info.plist angegeben. Dieser Wert muss angegeben werden, bevor eine Autorisierung angefordert wird.

+0

Vielen Dank für Ihre Antwort. Ich habe nicht zu viel Zeit damit verbracht, meine Plist-Datei zu ändern. Ist es so einfach, das Pluszeichen zu drücken und NSPhotoLibraryUsageDescription manuell einzugeben und den Typ String auszuwählen ?. Wird dies auch zu Problemen führen? Ich dachte, dass diese Eigenschaft eine Systemeigenschaft ist und nicht in einer App anders als durch Systemalertakzeptanz geändert werden konnte. – alionthego

+2

Mache die Schritte, die du gesagt hast, und gib einen Text in das Kästchen rechts ein: "Wir müssen deine Fotos lesen, damit wir ein paar Glerbs finden können." Dies wird dem Benutzer angezeigt, um zu erklären, warum Sie auf den Zugriff zugreifen möchten. Dieser Vorgang wird standardmäßig in iOS ausgeführt. [Ich schreibe gerade ein Buch über iOS 10] (https://gumroad.com/l/ios10) und das erste Kapitel behandelt genau diesen Vorgang. – TwoStraws

+0

Das ist großartig. Funktioniert perfekt. Vielen Dank für Ihre Hilfe. – alionthego

2

Zugriff auf Fotos auf dem Gerät zulassen. Fügen Sie unter key und string Ihre info.plist hinzu. Die automatische Vervollständigung in der Eigenschaftslistenansicht lautet "Datenschutz - Fotobibliotheksbenutzungsbeschreibung". Oder öffnen Sie einfach Ihre info.plist in der Quellcodeansicht und fügen Sie folgendes hinzu:

<key>NSPhotoLibraryUsageDescription</key> 
<string>We need access to your photos.</string>