Daher habe ich heute diese E-Mail erhalten, die besagt, dass der neueste Build meiner App von iTunes Connect aufgrund fehlender Verwendungsbeschreibungen abgelehnt wurde. Um genau zu sein:
Diese App versucht, 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.
Diese App versucht, auf datenschutzrelevante Daten ohne Verwendungsbeschreibung 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, auf datenschutzrelevante Daten ohne Verwendungsbeschreibung 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, auf datenschutzrelevante Daten ohne Verwendungsbeschreibung 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, auf datenschutzrelevante Daten ohne Verwendungsbeschreibung 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, auf datenschutzrelevante Daten ohne Verwendungsbeschreibung 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 ausliefern.
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 anfordert. Ich dachte, die Beschreibung wäre 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 nach dem Kalender, den Kontakten usw. des Benutzers frage?
quelle
PodFile
und die Liste der Bibliotheken, die Sie verwenden, veröffentlichen (wenn Sie einige externe Cocoapods verwenden)?Antworten:
Die Beschreibungen sind obligatorisch für alle Inhalte, die Sie oder Frameworks, die Sie verknüpfen, gegen den Versuch des Zugriffs. 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.
Oder idealerweise, wenn Sie keinen Zugriff benötigen, prüfen Sie, ob es eine Möglichkeit gibt, ihn nicht anzufordern (oder verwenden Sie Frameworks, die dies unnötig tun).
quelle
iOS 10 muss die Berechtigung in info.plist hinzufügen. Überprüfen Sie einfach diesen BLOG: - settings-in-ios-10 Sie haben alle Ahnung.
Fügen Sie die Berechtigung in der Datei info.plist in Ihrem Fehlerprotokoll hinzu .
NSCameraUsageDescription
NSContactsUsageDescription
NSPhotoLibraryUsageDescription
NSBluetoothPeripheralUsageDescription
NSMicrophoneUsageDescription
NSMotionUsageDescription
NSLocationAlwaysUsageDescription
NSLocationUsageDescription
NSLocationWhenInUseUsageDescription
NSRemindersUsageDescription
NSSiriUsageDescription
NSVideoSubscriberAccountUsageDescription
NSSpeechRecognitionUsageDescription
NSCalendarsUsageDescription
quelle
$(PRODUCT_NAME)
. Sie können die Standardeigenschaft wieBundle name
in der plist-Datei sehen.Sie können in Ihre info.plist wie folgt hinzufügen:
etc.
Hoffnung wird jemandem helfen ...
quelle
Ich hatte das gleiche Problem, und es scheint, dass die Verwendungsbeschreibungen erforderlich sind , wenn ein Framework, mit dem Sie verknüpfen, Code enthält, der diese Berechtigung anfordert (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.
quelle
Kalender: Schlüssel: Datenschutz - Kalender Verwendung Beschreibung
Wert: $ (PRODUCT_NAME) Kalenderereignisse
Erinnerung: Schlüssel: Datenschutz - Erinnerungen Verwendung Beschreibung
Wert: $ (PRODUCT_NAME) Erinnerung verwenden
Kontakt : Schlüssel: Datenschutz - Kontakte Verwendung Beschreibung
Wert: $ (PRODUCT_NAME) Kontakt verwenden
Foto: Schlüssel: Datenschutz - Verwendung der
Fotobibliothek Beschreibung Wert: $ (PRODUCT_NAME) Fotonutzung
Bluetooth-Freigabe: Schlüssel: Datenschutz - Verwendung der Bluetooth-Peripheriegeräte Beschreibung
Wert: $ (PRODUCT_NAME) Verwendung der Bluetooth-Peripheriegeräte
Mikrofon: Schlüssel: Datenschutz - Verwendung des Mikrofons Beschreibung
Wert: $ (PRODUCT_NAME) Verwendung des Mikrofons
Kamera: Schlüssel: Datenschutz -
Kameranutzung Beschreibung Wert: $ (PRODUCT_NAME) Kameranutzung
Standort: Schlüssel: Datenschutz - Standort Immer Verwendung Beschreibung
Wert: $ (PRODUCT_NAME) Standortverwendung
Schlüssel: Datenschutz - Standort bei Verwendung Verwendung Beschreibung
Wert: $ (PRODUCT_NAME) Standortverwendung
Heath: Key: Privacy - Health Share-Nutzung Beschreibung
Wert: $ (PRODUCT_NAME) Heath Share- Nutzung
Schlüssel: Datenschutz - Verwendung des Gesundheitsupdates Beschreibung
Wert: $ (PRODUCT_NAME) Verwendung des Gesundheitsupdates
HomeKit: Schlüssel: Datenschutz - HomeKit Verwendung Beschreibung
Wert: $ (PRODUCT_NAME) Verwendung des Home Kits
Medienbibliothek: Schlüssel: Datenschutz - Verwendung der Medienbibliothek Beschreibung
Wert: Verwendung der Medienbibliothek $ (PRODUCT_NAME)
Bewegung: Schlüssel: Datenschutz - Bewegungsnutzung Beschreibung
Wert: $ (PRODUCT_NAME) Bewegungsnutzung
Spracherkennung: Schlüssel: Datenschutz - Spracherkennung Verwendung Beschreibung
Wert: $ (PRODUCT_NAME) Sprachverwendung
SiriKit: Schlüssel: Datenschutz - Siri Verwendung Beschreibung
Wert: $ (PRODUCT_NAME) siri use
TV-Anbieter: Schlüssel: Datenschutz - TV-Anbieter Verwendung Beschreibung
Wert: $ (PRODUCT_NAME) tvProvider-Verwendung
quelle
Für alle, die sich fragen, warum Ihre App plötzlich überhaupt über all diese Berechtigungseinstellungen verfügt, die möglicherweise auf CocoaPods oder Karthago zurückzuführen sind - sie setzen all diese Berechtigungen in Verbindung. 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 Ihrem Projekt installieren, indem Sie eine PermissionsConfiguration.xcconfig in das Stammverzeichnis Ihres Projekts einfügen. Weitere Informationen hierzu finden Sie hier: https://cocoapods.org/pods/Permission#installation
Dies alles überraschte mich, als die neue Version meiner App abgelehnt wurde und 7 Berechtigungsschlüssel / -zeichenfolgen in der Datei Info.plist fehlten. Ich musste mich dann in mein Projekt vertiefen, um herauszufinden, was dies verursacht hat, 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 Pods-Integration zu entfernen. Ich muss mich darum kümmern, wie das geht, ohne mein Projekt neu zu starten.
quelle