Bevor Sie in iOS10 auf datenschutzrelevante Daten wie Kamera, Kontakte usw. zugreifen, müssen Sie nach der Autorisierung fragen. Andernfalls stürzt Ihre App ab, wenn Sie darauf zugreifen. Anschließend protokolliert Xcode wie folgt:
Diese App ist abgestürzt, weil versucht wurde, auf datenschutzrelevante Daten ohne Verwendungsbeschreibung zuzugreifen. Die Info.plist der App muss einen NSContactsUsageDescription
Schlüssel mit einem Zeichenfolgenwert enthalten, der dem Benutzer erklärt, wie die App diese Daten verwendet.
Wie gehe ich damit um?
Öffnen Sie die Datei in Ihrem Projektnamen info.plist
, klicken Sie mit der rechten Maustaste darauf und öffnen Sie sie Source Code
. Fügen Sie diesen Code unten ein. Oder Sie können öffnen , info.plist
wie Property List
standardmäßig, klicken Sie auf die Schaltfläche Hinzufügen, Xcode geben Ihnen die vorschlagen Vervollständigungen während der Eingabe Privacy -
mit Hilfe der Tastatur ⬆️ und ⬇️.
Denken Sie daran, Ihre Beschreibung zu schreiben, warum Sie zwischen <string>
und um diese Autorisierung bitten </string>
, oder Ihre App wird von Apple abgelehnt:
<!-- 🖼 Photo Library -->
<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) photo use</string>
<!-- 📷 Camera -->
<key>NSCameraUsageDescription</key>
<string>$(PRODUCT_NAME) camera use</string>
<!-- 🖼 Write To Image Gallery>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>$(PRODUCT_NAME) save phots in gallry</string>
<!-- 🎤 Microphone -->
<key>NSMicrophoneUsageDescription</key>
<string>$(PRODUCT_NAME) microphone use</string>
<!-- 📍 Location -->
<key>NSLocationUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
<!-- 📍 Location When In Use -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
<!-- 📍 Location Always -->
<key>NSLocationAlwaysUsageDescription</key>
<string>$(PRODUCT_NAME) always uses location </string>
<!-- 📆 Calendars -->
<key>NSCalendarsUsageDescription</key>
<string>$(PRODUCT_NAME) calendar events</string>
<!-- ⏰ Reminders -->
<key>NSRemindersUsageDescription</key>
<string>$(PRODUCT_NAME) reminder use</string>
<!-- 📒 Contacts -->
<key>NSContactsUsageDescription</key>
<string>$(PRODUCT_NAME) contact use</string>
<!-- 🏊 Motion -->
<key>NSMotionUsageDescription</key>
<string>$(PRODUCT_NAME) motion use</string>
<!-- 💊 Health Update -->
<key>NSHealthUpdateUsageDescription</key>
<string>$(PRODUCT_NAME) heath update use</string>
<!-- 💊 Health Share -->
<key>NSHealthShareUsageDescription</key>
<string>$(PRODUCT_NAME) heath share use</string>
<!-- ᛒ🔵 Bluetooth Peripheral -->
<key>NSBluetoothPeripheralUsageDescription</key>
<string>$(PRODUCT_NAME) Bluetooth Peripheral use</string>
<!-- 🎵 Media Library -->
<key>NSAppleMusicUsageDescription</key>
<string>$(PRODUCT_NAME) media library use</string>
<!-- 📱 Siri -->
<key>NSSiriUsageDescription</key>
<string>$(PRODUCT_NAME) siri use</string>
<!-- 🏡 HomeKit -->
<key>NSHomeKitUsageDescription</key>
<string>$(PRODUCT_NAME) home kit use</string>
<!-- 📻 SpeechRecognition -->
<key>NSSpeechRecognitionUsageDescription</key>
<string>$(PRODUCT_NAME) speech use</string>
<!-- 📺 VideoSubscriber -->
<key>NSVideoSubscriberAccountUsageDescription</key>
<string>$(PRODUCT_NAME) tvProvider use</string>
Wenn dies nicht funktioniert, fragen Sie nach der Hintergrundautorisierung:
<key>UIBackgroundModes</key>
<array>
<!-- something you should use in background -->
<string>location</string>
</array>
Oder gehen Sie zu target -> Capabilities -> Background Modes -> open the background Modes
:
Bereinigen Sie dann Ihr Projekt und führen Sie es aus.
Weitere Informationen finden Sie hier: iOS10AdaptationTips .