Wenn ich mit einem UIImagePicker auf meine Fotobibliothek zugreife, um ein Foto auszuwählen, zeigt mir die App manchmal einen schwarzen Bildschirm und manchmal einen Bildschirm an, der besagt, dass ich meiner App Berechtigungen zum Zugriff auf die Fotos erteilen muss. Wenn ich jedoch zu Einstellungen -> Datenschutz -> Fotos gehe, gibt es keine App und die App ist nirgendwo in den Einstellungen zu sehen. Ich habe gelesen, dass ich meiner Info.plist zwei Werte hinzufügen muss, aber sie haben auch nicht funktioniert. Hat jemand mit dem gleichen Fehler gelaufen? Ich arbeite mit xcode 7, Swift 2.0 und iOS 9
Hier fordere ich den Benutzer zum Zugriff auf die Kamera auf
@IBAction func cameraButtonPressed(sender: UIButton) {
let actionSheet = UIAlertController(title: nil, message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)
let cancelAction = UIAlertAction(title: "Cancel", style: .Default) { (UIAlertAction) -> Void in
self.dismissViewControllerAnimated(true, completion: nil)
}
let cameraAction = UIAlertAction(title: "Take Photo", style: .Default) { (UIAlertAction) -> Void in
if UIImagePickerController.availableCaptureModesForCameraDevice(.Rear) != nil {
self.imagePicker.allowsEditing = false
self.imagePicker.sourceType = UIImagePickerControllerSourceType.Camera
self.imagePicker.cameraCaptureMode = .Photo
self.presentViewController(self.imagePicker, animated: true, completion: nil)
} else {
self.noCamera()
}
}
let photoLibraryAction = UIAlertAction(title: "Photo Library", style: .Default) { (UIAlertAction) -> Void in
self.imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
self.presentViewController(self.imagePicker, animated: true, completion: nil)
}
actionSheet.addAction(photoLibraryAction)
actionSheet.addAction(cameraAction)
actionSheet.addAction(cancelAction)
self.presentViewController(actionSheet, animated: true, completion: nil)
}
Dieses Problem tritt in iOS 9 auf, wenn Ihre Info.plist-Anwendungsdatei einen Schlüssel enthält: "CFBundleDisplayName" mit leerem Zeichenfolgenwert.
Sie können Ihren App-Namen dort eingeben und er sollte funktionieren.
In info.plist darf das Feld "Bundle display name" nicht leer sein.
Wenn Sie diesen Bildschirm erhalten, gibt es wahrscheinlich folgende Gründe und Lösungen:
1.Wenn Sie keine Zugriffsberechtigungswarnung erhalten.
Lösung : 1. Fügen Sie CFBundleDisplayName und ihren Wert hinzu, während Sie den Titel der Anwendung oder etwas anderes angeben, das Sie möchten . Fügen Sie NSPhotoLibraryUsageDescription in der Datei info.plist hinzu
2.Überprüfen Sie Ihre Einstellungen -> Datenschutz -> Fotos, der Datenschutz ist deaktiviert oder aktiviert.
Lösung : Aktivieren Sie den Datenschutz für Fotos.
3.Wenn Sie an einem Simulator arbeiten und bereits CFBundleDisplayName hinzugefügt haben, wird der Zugriff auf Fotos nicht angezeigt.
Lösung : Vergewissern Sie sich, dass sich der von Ihnen verwendete Xcode im Ordner Application befindet , um eine Berechtigungszugriffsbenachrichtigung zu erhalten.
Für diejenigen, die diesen Fehler immer noch in iOS 10 erhalten, handelt es sich um neue Datenschutz-Einstellungen in iOS 10.
Grundsätzlich müssen Sie in Info.plist
angeben, warum Sie auf die Fotobibliothek zugreifen möchten, indem Sie die Privacy - Photo Library Usage Description
-Taste festlegen (beachten Sie, dies kann eine leere Zeichenfolge sein).
Mehr dazu hier: http://useyourloaf.com/blog/privacy-settings-in-ios-10/
FÜR iOS10 In info.plist
"CFBundleDisplayName" Geben Sie Ihren App-Namen ein
<key>CFBundleDisplayName</key>
<string>IMS Food-taxi</string>
und "NSPhotoLibraryUsageDescription" Beschreibung hinzufügen
<key>NSPhotoLibraryUsageDescription</key>
<string>you will need to give the app permission to use the Photos.</string>
es ist sehr einfach,
geh einfach rein
simulator -> Hardware -> Startseite
dann in den Telefoneinstellungen -> in deiner App -> jetzt durch Verschieben Umschaltoption zulassen wie unter Bild
Mir ist klar, dass es sich um eine alte Frage handelt, aber ich habe noch einen letzten Tipp für den letzten Graben ...
Nachdem ich die obigen Vorschläge ausprobiert hatte, hatte ich immer noch Probleme mit der Berechtigung Kamera, Fotos, Musikbibliothek auf einem iPod touch, auf dem iOS 9.3 ausgeführt wurde. Der Settings app > Privacy > Photos
listete keine Apps auf (Privacy > Camera
oder Privacy > Media Library
). Die Einstellungen-App enthielt keine Zeile für meine App. Daher konnten Kunden die Datenschutzberechtigungen meiner App nicht ändern.
Die Lösung musste den Settings app > General > Reset
öffnen, dann auf Reset Location & Privacy
tippen. Anscheinend waren die Datenschutzeinstellungen meines Geräts irgendwie beschädigt. Nach dem Zurücksetzen wurden alle diese Probleme behoben.