Verwenden von iOS 10.0
der letzten Beta. Ich hatte versucht, mit der Kamera Barcode in meiner App zu scannen, und dieser Laufzeitfehler stürzte ab.
Diese App ist abgestürzt, weil versucht wurde, auf vertrauliche Daten zuzugreifen Daten ohne Verwendungsbeschreibung. Die Info.plist der App muss .__ enthalten. ein NSCameraUsageDescription-Schlüssel mit einem Zeichenfolgewert, der das .__ erklärt. Benutzer, wie die App diese Daten verwendet.
Stecken Sie diesen Schlüssel in die Liste, aber es ist trotzdem abgestürzt?
Nach iOS 10 müssen Sie eine Verwendungsbeschreibung aller datenschutzrelevanten Daten des Systems definieren und angeben, auf die Ihre App in Info.plist wie folgt zugreift:
Kalender
Key : Privacy - Calendars Usage Description
Value : $(PRODUCT_NAME) calendar events
Erinnerung :
Key : Privacy - Reminders Usage Description
Value : $(PRODUCT_NAME) reminder use
Kontakt :
Key : Privacy - Contacts Usage Description
Value : $(PRODUCT_NAME) contact use
Foto:
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
Bluetooth-Freigabe:
Key : Privacy - Bluetooth Peripheral Usage Description
Value : $(PRODUCT_NAME) Bluetooth Peripheral use
Mikrofon:
Key : Privacy - Microphone Usage Description
Value : $(PRODUCT_NAME) microphone use
Kamera:
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use
Ort :
Key : Privacy - Location Always Usage Description
Value : $(PRODUCT_NAME) location use
Key : Privacy - Location When In Use Usage Description
Value : $(PRODUCT_NAME) location use
Heide:
Key : Privacy - Health Share Usage Description
Value : $(PRODUCT_NAME) heath share use
Key : Privacy - Health Update Usage Description
Value : $(PRODUCT_NAME) heath update use
HomeKit:
Key : Privacy - HomeKit Usage Description
Value : $(PRODUCT_NAME) home kit use
Medienbibliothek :
Key : Privacy - Media Library Usage Description
Value : $(PRODUCT_NAME) media library use
Bewegung:
Key : Privacy - Motion Usage Description
Value : $(PRODUCT_NAME) motion use
Spracherkennung :
Key : Privacy - Speech Recognition Usage Description
Value : $(PRODUCT_NAME) speech use
SiriKit:
Key : Privacy - Siri Usage Description
Value : $(PRODUCT_NAME) siri use
TV-Anbieter:
Key : Privacy - TV Provider Usage Description
Value : $(PRODUCT_NAME) tvProvider use
Ausführliche Informationen erhalten Sie unter this link.
Da Apple geändert hat, können Sie in iOS 10
auf alle privaten Datentypen von Benutzern zugreifen.
Sie müssen den Schlüssel "Privacy - Camera usage description
" zum Info.plist
Ihrer Anwendung und deren Verwendungsinformationen hinzufügen, die für Ihre Anwendung gelten, wie in dem folgenden Beispiel angegeben, das ich zum Scannen von Barcodes verwendet habe.
Weitere Informationen finden Sie in der folgenden Abbildung.
Sie müssen diesen Schlüssel in info.plist hinzufügen.
NSCameraUsageDescription
Oder Privacy - Camera usage description
Und fügen Sie eine Beschreibung der Verwendung hinzu.
Detaillierte Screenshots finden Sie in diesem link
Alternativ können Sie Info.plist als Quellcode öffnen und Folgendes hinzufügen:
<key>NSCameraUsageDescription</key>
<string>Camera usage description</string>
Verwenden Sie diese Rohwerte und kopieren Sie sie in info.plist
<key>NSCalendarsUsageDescription</key>
<string>$(PRODUCT_NAME) calendar events</string>
<key>NSRemindersUsageDescription</key>
<string>$(PRODUCT_NAME) reminder use</string>
<key>NSCameraUsageDescription</key>
<string>This app requires to access your photo library to show image on profile and send via chat</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app requires to access your microphone to record video with your voice send via chat</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app requires to access your photo library to show image on profile and send via chat</string>
<key>NSContactsUsageDescription</key>
<string>$(PRODUCT_NAME) contact use</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
Ein anderes Beispiel, dem ich beim Versuch, die Kamera zu benutzen, begegnete, war, dass sie immer noch mit dem gleichen _CRASHING_DUE_TO_PRIVACY
abstürzte, nachdem sie die "Camera Usage Description" hinzugefügt hatte. Nachdem es fehlgeschlagen war, etwas greifbares vom Aufrufstack zu bekommen, wechselte es zum "Organizer" und schaute in die Absturzberichte auf dem Gerät. Ich fand, dass es sich in der Tat über die Privatsphäre wegen der fehlenden "Microphone Usage Description" beschwerte. Ich fügte das hinzu und löste so einen kryptischen Zusammenbruch.
Wenn Sie Ionic verwenden, können Sie das Problem direkt in config.xml lösen, indem Sie das Tag "inside platform ios" hinzufügen:
<platform name="ios">
.
.
.
<config-file target="*-Info.plist" parent="NSPhotoLibraryUsageDescription">
<string>photo library usage description</string>
</config-file>
<config-file target="*-Info.plist" parent="NSCameraUsageDescription">
<string>camera usage description</string>
</config-file>
.
.
.
</platform>
Ich möchte mich auch bei @BHUPI bedanken.
Ich habe die Liste überprüft und festgestellt, dass sie nicht funktioniert. Nur in den "Projekt" -Informationen müssen Sie die "Privacy - Camera ...." hinzufügen, dann sollte es funktionieren. Hoffe dir zu helfen.
Für diejenigen, die immer noch den Fehler erhalten, obwohl Sie die richtigen Schlüssel in Info.plist eingefügt haben:
Stellen Sie sicher, dass Sie den Schlüssel in die richtige Info.plist einfügen. Neuere Version von xCode hat anscheinend 3 Info.plist.
Einer befindet sich in einem Ordner mit dem Namen Ihrer App, der das Problem für mich gelöst hat.
Der zweite ist unter YourappnameTests und der dritte unter YourappnameUITests.
Ich hoffe es hilft.
Dazu fügen Sie der Info.plist Ihrer App einen Verwendungsschlüssel zusammen mit einer Zweckzeichenfolge . NSCameraUsageDescription Gibt den Grund für den Zugriff Ihrer App auf die Kamera des Geräts an