2016-07-21 30 views
76

iOS 10 Jetzt wird die Benutzerberechtigung für den Zugriff auf Medienbibliothek, Fotos, Kamera und andere Hardware wie diese benötigt. Die Lösung hierfür ist ihre Schlüssel hinzufügen in info.plist mit Beschreibung für den Benutzer, dass, wie wir ihre Daten verwenden,iOS 10 - Änderungen der Abfrageberechtigungen von Kamera, Mikrofon und Fotobibliothek, die zum Absturz der Anwendung führen

ich nur wenige Tasten finden konnten

NSPhotoLibraryUsageDescription 
NSMicrophoneUsageDescription 
NSCameraUsageDescription 

Ich möchte wissen, ob es weitere Tasten sind auch für andere Hardware wie in iOS 10Wenn Sie mit den richtigen Schlüsseln Beschreibung nicht zur Verfügung gestellt haben, stürzt Ihre Anwendung ab, wenn Sie mit XCode - 8 Beta bauen.

+0

ist iOS 10 in unter NDA? – sage444

+0

Ich bin mir da nicht sicher. –

+0

Erlaubnis in Info.plist: https://iosdevcenters.blogspot.com/2016/09/infoplist-privacy-settings-in-ios-10.html –

Antwort

98

Es gibt eine Liste aller Cocoa Keys, die Sie in Ihrer Info.plist Datei angeben:

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

(Xcode Ziel -> Info -> Benutzerdefinierte iOS Zieleigenschaften)

iOS bereits Berechtigungen erforderlich Zugriff auf Mikrofon, Kamera und Medienbibliothek früher (iOS6, iOS7), aber seit iOS10 apps Absturz wenn Sie nicht die desc bereitstellen warum Sie nach der Erlaubnis fragen (es darf nicht leer sein).

Datenschutzschlüssel mit Beispiel Beschreibung: cheatsheet

Source

Sie können auch offen Info.plist als Quellcode: source code

Source

Und fügen Sie sie wie folgt:

<key>NSLocationAlwaysUsageDescription</key> 
<string>${PRODUCT_NAME} always location use</string> 

Liste aller Datenschutzschlüssel:

NSCameraUsageDescription 
NSBluetoothPeripheralUsageDescription 
NSCalendarsUsageDescription 
NSContactsUsageDescription 
NSHealthShareUsageDescription 
NSHealthUpdateUsageDescription 
NSHomeKitUsageDescription 
NSLocationAlwaysUsageDescription 
NSLocationUsageDescription 
NSLocationWhenInUseUsageDescription 
NSAppleMusicUsageDescription 
NSMicrophoneUsageDescription 
NSMotionUsageDescription 
kTCCServiceMediaLibrary 
NSPhotoLibraryUsageDescription 
NSRemindersUsageDescription 
NSSiriUsageDescription 
NSSpeechRecognitionUsageDescription 
NSVideoSubscriberAccountUsageDescription 
+2

ja, aber aber die Änderung ist, dass die Anwendung jetzt abstürzt, wenn Sie haben Es wurde nicht beschrieben, warum wir um Erlaubnis bitten. Bitte korrigieren Sie mich, wenn ich falsch liege. –

+1

@Syed Ali Salman Sie haben Recht - es wird seit iOS10 abstürzen, jetzt bekommen Sie wirklich Ihre Frage. Wird die Antwort aktualisieren. :) – KlimczakM

+1

Ich hoffe Apple wird entscheiden, ob es obligatorisch ist oder nicht. Laut Apple-Dokumentation ist es nicht: Erklären Sie, warum Ihre App die Informationen benötigt, wenn sie nicht offensichtlich ist. Sie können dem vom System bereitgestellten Berechtigungsanforderungsalarm benutzerdefinierten Text hinzufügen. Machen Sie den Text spezifisch und höflich, damit sich die Leute nicht unter Druck gesetzt fühlen. Halten Sie den Text kurz und verwenden Sie den Satzfall. Sie müssen Ihren App-Namen nicht angeben. Das System identifiziert Ihre App bereits als diejenige, die die Anfrage stellt. " – sumofighter666

18

Sie haben diese Berechtigung in Info.plist für iOS 10. All Permission für weitere Referenz hinzuzufügen.

Foto:

Key  : Privacy - Photo Library Usage Description  
Value : $(PRODUCT_NAME) photo use 

Mikrofon:

Key  : Privacy - Microphone Usage Description  
Value : $(PRODUCT_NAME) microphone use 

Kamera:

Key  : Privacy - Camera Usage Description 
Value : $(PRODUCT_NAME) camera use 
44

Bitte unten Codes finden IOS 10 Anfrage Erlaubnis Probe für .
Sie können für Ihre benutzerdefinierte Nachricht ändern.

<key>NSCameraUsageDescription</key> 
    <string>${PRODUCT_NAME} Camera Usage</string> 

    <key>NSBluetoothPeripheralUsageDescription</key> 
    <string>${PRODUCT_NAME} BluetoothPeripheral</string> 

    <key>NSCalendarsUsageDescription</key> 
    <string>${PRODUCT_NAME} Calendar Usage</string> 

    <key>NSContactsUsageDescription</key> 
    <string>${PRODUCT_NAME} Contact fetch</string> 

    <key>NSHealthShareUsageDescription</key> 
    <string>${PRODUCT_NAME} Health Description</string> 

    <key>NSHealthUpdateUsageDescription</key> 
    <string>${PRODUCT_NAME} Health Updates</string> 

    <key>NSHomeKitUsageDescription</key> 
    <string>${PRODUCT_NAME} HomeKit Usage</string> 

    <key>NSLocationAlwaysUsageDescription</key> 
    <string>${PRODUCT_NAME} Use location always</string> 

    <key>NSLocationUsageDescription</key> 
    <string>${PRODUCT_NAME} Location Updates</string> 

    <key>NSLocationWhenInUseUsageDescription</key> 
    <string>${PRODUCT_NAME} WhenInUse Location</string> 

    <key>NSAppleMusicUsageDescription</key> 
    <string>${PRODUCT_NAME} Music Usage</string> 

    <key>NSMicrophoneUsageDescription</key> 
    <string>${PRODUCT_NAME} Microphone Usage</string> 

    <key>NSMotionUsageDescription</key> 
    <string>${PRODUCT_NAME} Motion Usage</string> 

    <key>kTCCServiceMediaLibrary</key> 
    <string>${PRODUCT_NAME} MediaLibrary Usage</string> 

    <key>NSPhotoLibraryUsageDescription</key> 
    <string>${PRODUCT_NAME} PhotoLibrary Usage</string> 

    <key>NSRemindersUsageDescription</key> 
    <string>${PRODUCT_NAME} Reminder Usage</string> 

    <key>NSSiriUsageDescription</key> 
    <string>${PRODUCT_NAME} Siri Usage</string> 

    <key>NSSpeechRecognitionUsageDescription</key> 
    <string>${PRODUCT_NAME} Speech Recognition Usage</string> 

    <key>NSVideoSubscriberAccountUsageDescription</key> 
    <string>${PRODUCT_NAME} Video Subscribe Usage</string> 
+0

Danke, seine wahre Antwort, nur Apple sagt: "Es ist nicht notwendig, deinen App-Namen anzugeben. Das System identifiziert deine App bereits als diejenige, die macht die Anfrage." –