2016-06-17 35 views
11

La mia app continua a bloccarsi durante l'esecuzione nel simulatore ogni volta che provo a richiedere l'autorizzazione per la libreria di foto. Sto usando il seguente codice nel mio AppDelegate in didFinishLaunchingWithOptions:xcode 8 PHPhotoLibrary.requestAutorizzazione che causa crash

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

    }) 
} 

Utilizzando Xcode 8 beta con SWIFT 3.0.

risposta

23

Nel mio test, iOS 10 non è in grado di generare utili messaggi di errore a meno che non si stia eseguendo su un dispositivo reale. In questo caso particolare, probabilmente non hai fornito la chiave NSPhotoLibraryUsageDescription nel tuo file Info.plist e tale valore deve essere fornito prima di richiedere l'autorizzazione.

+0

Grazie per la risposta. Non ho speso troppo tempo a modificare il mio file Plist. È semplice come premere il più e digitare manualmente NSPhotoLibraryUsageDescription e selezionare il tipo su String ?. Anche questo causerà problemi in futuro? Ho pensato che quella proprietà fosse una proprietà di sistema e non potesse essere modificata all'interno di un'app diversa dall'accettazione dell'avviso di sistema. – alionthego

+2

Esegui i passaggi che hai detto, quindi inserisci del testo nella casella a destra: "Abbiamo bisogno di leggere le tue foto in modo da farci rotolare dei grilli". Questo verrà mostrato all'utente per spiegare perché vuoi accedere, ed è una procedura standard in iOS. [Sto scrivendo un libro su iOS 10 in questo momento] (https://gumroad.com/l/ios10) e il primo capitolo tratta esattamente questa procedura. – TwoStraws

+0

È grandioso. Funziona perfettamente. Grazie mille per il tuo aiuto. – alionthego

2

Devono consentire l'accesso alle foto sul dispositivo. Aggiungi sotto chiave e stringa al tuo info.plist. Il completamento automatico nella visualizzazione elenco proprietà è "Privacy - Descrizione utilizzo libreria foto". O semplicemente apri il tuo info.plist nella vista codice sorgente e aggiungi quanto segue:

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