wake-up-neo.com

App wegen fehlender Nutzungsbeschreibungen abgelehnt (Xcode8)

Ich erhielt heute eine E-Mail mit dem Hinweis, dass der neueste Build meiner App von iTunes Connect aufgrund fehlender Verwendungsbeschreibungen abgelehnt wurde. Um genau zu sein:

Diese App versucht, ohne Verwendungsbeschreibung auf datenschutzrelevante Daten 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.

Diese App versucht, ohne Verwendungsbeschreibung auf datenschutzrelevante Daten zuzugreifen. Die Info.plist der App muss einen NSCalendarsUsageDescription-Schlüssel mit einem Zeichenfolgenwert enthalten, der dem Benutzer erklärt, wie die App diese Daten verwendet.

Diese App versucht, ohne Verwendungsbeschreibung auf datenschutzrelevante Daten zuzugreifen. Die Info.plist der App muss einen NSPhotoLibraryUsageDescription-Schlüssel mit einem Zeichenfolgenwert enthalten, der dem Benutzer erklärt, wie die App diese Daten verwendet.

Diese App versucht, ohne Verwendungsbeschreibung auf datenschutzrelevante Daten zuzugreifen. Die Info.plist der App muss einen NSBluetoothPeripheralUsageDescription-Schlüssel mit einem Zeichenfolgenwert enthalten, der dem Benutzer erklärt, wie die App diese Daten verwendet.

Diese App versucht, ohne Verwendungsbeschreibung auf datenschutzrelevante Daten zuzugreifen. Die Info.plist der App muss einen NSMicrophoneUsageDescription-Schlüssel mit einem Zeichenfolgenwert enthalten, der dem Benutzer erklärt, wie die App diese Daten verwendet.

Diese App versucht, ohne Verwendungsbeschreibung auf datenschutzrelevante Daten zuzugreifen. Die Info.plist der App muss einen NSMotionUsageDescription-Schlüssel mit einem Zeichenfolgenwert enthalten, der dem Benutzer erklärt, wie die App diese Daten verwendet.

Sobald diese Probleme behoben wurden, können Sie die korrigierte Binärdatei erneut bereitstellen.

Ich habe herausgefunden, dass diese mit iOS 10 obligatorisch geworden sind, aber das einzige Problem ist, dass meine App keine Erlaubnis zum Zugriff auf diese fordert. Ich dachte, die Beschreibung ist nur obligatorisch, wenn Sie tatsächlich eine Erlaubnis angefordert haben?

Liegt es daran, dass eine meiner Abhängigkeiten (Cocoapods) möglicherweise Code enthält, um diese Berechtigungen anzufordern? Oder sind diese Beschreibungen obligatorisch, auch wenn ich nie den Kalender, die Kontakte usw. des Benutzers sehen möchte?

88
KimHafr

Die Beschreibungen sind obligatorisch für alle Inhalte oder Frameworks, die Sie gegen Zugriffsversuche verlinken. Die Fehler werden beim Versuch generiert, auf den Inhalt zuzugreifen, wenn keine Verwendungsbeschreibung angegeben wurde. Wenn Sie diese Fehler erhalten, muss Ihre App sie anfordern. Sie sollten herausfinden, warum Ihre App oder ihre Frameworks diese benötigen, und der info.plist Ihrer App entsprechende Verwendungsbeschreibungen hinzufügen.

Wenn Sie keinen Zugriff benötigen, versuchen Sie im Idealfall, ihn nicht anzufordern (oder Frameworks zu verwenden, die dies unnötigerweise tun).

33
Matthew Seaman

iOS 10 muss die Berechtigung in info.plist hinzufügen. BLOG: - settings-in-ios-1 Sie bekommen alle Ahnung.

Fügen Sie die Berechtigung in die Datei info.plist auf der Basis Ihrer Fehlerprotokoll .

Hinweis: Schreiben Sie den richtigen Grund für die Erlaubnis in den Zeichenfolgenwert, andernfalls Apple App erneut ablehnen.

NSCameraUsageDescription

<key>NSCameraUsageDescription</key>
    <string>$(PRODUCT_NAME) camera use.</string>

NSContactsUsageDescription

<key>NSContactsUsageDescription</key>
    <string>$(PRODUCT_NAME) contacts use.</string>

NSPhotoLibraryUsageDescription

<key>NSPhotoLibraryUsageDescription</key>
    <string>$(PRODUCT_NAME) photos and video use.</string>

NSBluetoothPeripheralUsageDescription

<key>NSBluetoothPeripheralUsageDescription</key>
    <string>$(PRODUCT_NAME) bluetooth use.</string>

NSMicrophoneUsageDescription

<key>NSMicrophoneUsageDescription</key>
    <string>$(PRODUCT_NAME) microphone use.</string>

NSMotionUsageDescription

<key>NSMotionUsageDescription</key>
    <string>$(PRODUCT_NAME) motion use.</string>

NSLocationAlwaysUsageDescription

<key>NSLocationAlwaysUsageDescription</key>
    <string>$(PRODUCT_NAME) location use.</string>

NSLocationUsageDescription

<key>NSLocationUsageDescription</key>
    <string>$(PRODUCT_NAME) location use.</string>

NSLocationWhenInUseUsageDescription

<key>NSLocationWhenInUseUsageDescription</key>
    <string>$(PRODUCT_NAME) location use.</string>

NSRemindersUsageDescription

<key>NSRemindersUsageDescription</key>
    <string>$(PRODUCT_NAME) reminders use.</string>

NSSiriUsageDescription

<key>NSSiriUsageDescription</key>
    <string>$(PRODUCT_NAME) siri use.</string>

NSVideoSubscriberAccountUsageDescription

<key>NSVideoSubscriberAccountUsageDescription</key>
    <string>$(PRODUCT_NAME) video use.</string>

NSSpeechRecognitionUsageDescription

<key>NSSpeechRecognitionUsageDescription</key>
    <string>$(PRODUCT_NAME) speech recognition use.</string>

NSCalendarsUsageDescription

<key>NSCalendarsUsageDescription</key>
    <string>$(PRODUCT_NAME) user your calendar.</string>

enter image description here

138
Mitul Marsoniya

Sie können in Ihrer info.plist hinzufügen wie:

<key>NSCalendarsUsageDescription</key>
    <string>Explain the reasons for accessing...</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>Explain the reasons for accessing...</string>
    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>Explain the reasons for accessing...</string>

usw.

Hoffnung hilft jemandem ...

9
mgyky

Ich hatte das gleiche Problem, und es scheint, dass die Verwendungsbeschreibungen erforderlich sind, wenn ein Framework, mit dem Sie verknüpfen, mit Code, der diese Berechtigung abfragt (auch wenn Ihre App sie nie anfordert). Laut meinem Test werden sie jedoch nicht in der Berechtigungsliste Ihrer App angezeigt, wenn Sie sie nicht anfordern.

6
Dielson Sales

Kalender: Schlüssel: Datenschutz - Verwendungsbeschreibung des Kalenders
Wert: $ (PRODUCT_NAME) Kalenderereignisse

Reminder: Key: Privacy - Reminder Usage Description
Wert: $ (PRODUCT_NAME) Erinnerungsgebrauch

Kontakt: Schlüssel: Datenschutz - Kontakte Verwendungsbeschreibung
Wert: $ (PRODUCT_NAME) Kontaktverwendung

Foto: Schlüssel: Datenschutz - Verwendungsbeschreibung der Fotobibliothek
Wert: Verwendung von $ (PRODUCT_NAME) -Fotos

Bluetooth Sharing: Schlüssel: Datenschutz - Beschreibung der Verwendung von Bluetooth-Peripheriegeräten
Wert: $ (PRODUCT_NAME) Verwendung von Bluetooth-Peripheriegeräten

Mikrofon: Taste: Datenschutz - Beschreibung der Mikrofonverwendung
Wert: $ (PRODUCT_NAME) Mikrofonverwendung

Camera: Key: Privacy - Kameranutzungsbeschreibung
Wert: $ (PRODUCT_NAME) Kameranutzung

Location: Schlüssel: Privacy - Location Always Usage Description
Wert: Standortverwendung $ (PRODUCT_NAME)

Schlüssel: Datenschutz - Ort bei Verwendung Verwendungsbeschreibung
Wert: Standortverwendung $ (PRODUCT_NAME)

Heath: Schlüssel: Privacy - Health Share Usage Description
Wert: $ (PRODUCT_NAME) Heidefreigabe

Schlüssel: Datenschutz - Verwendungsbeschreibung für Health Update
Wert: $ (PRODUCT_NAME) Verwendungszweck der Aktualisierung

HomeKit: Schlüssel: Datenschutz - HomeKit-Verwendungsbeschreibung
Wert: $ (PRODUCT_NAME) Verwendungszweck des Heimkits

Medienbibliothek: Schlüssel: Datenschutz - Verwendungsbeschreibung der Medienbibliothek
Wert: Verwendung der Medienbibliothek $ (PRODUCT_NAME)

Motion: Schlüssel: Datenschutz - Verwendungsbeschreibung von Motion
Wert: Bewegungsverwendung von $ (PRODUCT_NAME)

Spracherkennung: Schlüssel: Datenschutz - Beschreibung der Spracherkennung
Wert: Sprachverwendung $ (PRODUCT_NAME)

SiriKit: Schlüssel: Datenschutz - Siri Benutzungsbeschreibung
Wert: $ (PRODUCT_NAME) siri use

TV-Anbieter: Schlüssel: Datenschutz - Verwendungsbeschreibung des TV-Anbieters
Wert: $ (PRODUCT_NAME) Verwendung von tvProvider

3
Trinadh Koya

Für alle, die sich fragen, warum Ihre App plötzlich all diese Berechtigungseinstellungen hat, die möglicherweise von CocoaPods oder Carthage stammen - sie haben alle diese Berechtigungen angehängt. Ich habe gerade meine App aktualisiert, um Cordova-Plugin-Firebasex zu verwenden, das eine umfangreiche Installation von Cocoapods (und Abhängigkeiten) enthält. Sie können diese Berechtigungen deaktivieren, BEVOR Sie cocoapods in Ihr Projekt installieren, indem Sie PermissionsConfiguration.xcconfig im Stammverzeichnis Ihres Projekts ablegen. Weitere Informationen hierzu finden Sie hier: https://cocoapods.org/pods/Permission# Installation

Dies alles überraschte mich, als die neue Version meiner App mit 7 fehlenden Berechtigungsschlüsseln/-zeichenfolgen in der Datei Info.plist abgelehnt wurde. Ich musste mich dann in mein Projekt vertiefen, um herauszufinden, was dies verursachte, da meine App keine dieser Berechtigungen benötigt oder verwendet (noch nie).

Es mag existieren, aber im Moment kann ich keine Möglichkeit finden, Berechtigungen nach der Integration von Pods zu entfernen.

0
rolinger