wake-up-neo.net

Fehler Appstore-Verbindung: Fehlende Zweckzeichenfolge in der Info.plist-Datei

Ich habe meine App zur Überprüfung beim Appstore Connect eingereicht. Obwohl die App noch geprüft wird, habe ich eine E-Mail erhalten, die mich darüber informiert, dass ich einen Fehler beheben muss. Hier ist der Inhalt der Nachricht: 

    Dear Developer,

    We identified one or more issues with a recent delivery for your 
    app XXXXX. Your delivery was successful, but you 
    may wish to correct the following issues in your next delivery:

    "Missing Purpose String in Info.plist File. Your app's code 
    references one or more APIs that access sensitive user data. The 
    app's Info.plist file should contain a 
    NSLocationAlwaysUsageDescription key with a user-facing purpose 
    string explaining clearly and completely why your app needs the 
    data. Starting spring 2019, all apps submitted to the App Store 
    that access user data will be required to include a purpose 
    string.If you're using external libraries or SDKs, they may 
    reference APIs that require a purpose string. While your app might 
    not use these APIs, a purpose string is still required. You can 
    contact the developer of the library or SDK and request they 
    release a version of their code that doesn't contain the APIs. 


     After you’ve corrected the issues, you can use Xcode or 
     Application Loader to upload a new binary to iTunes Connect.

     Best regards,

     The App Store Team

Meine App ist vollständig mit Expo erstellt und ich kann nicht auf die Info.plist zugreifen und sie ändern. 

Irgendeine Idee ?

70
John doe

Wenn Sie Expo verwenden, können Sie lösen, indem Sie infoPlist zu app.json hinzufügen:

  "expo": {
     "ios": {
       "bundleIdentifier": "com.app.myapp",
       "infoPlist": {
         "NSLocationAlwaysUsageDescription": "Some message to appease Apple.",
       },
     },
   }

Expo Docs

16
gwalshington

Ich habe einige Apps im Store und habe versucht, eine Version für QA zu verteilen, und dasselbe passierte in zwei verschiedenen Apps .. Ich denke, dies ist ein neues Kriterium, um die Builds-Uploads in Appstore anzuschließen. 

Die Lösung ist einfach: Fügen Sie der .plist-Datei die folgenden Zeilen hinzu.

<key>NSLocationAlwaysUsageDescription</key>

<string>custom message</string>

<key>NSLocationWhenInUseUsageDescription</key>

<string>custom message</string>

PS: In meinem Fall habe ich kein Standortmerkmal verwendet, aber ich habe diese Zeilen hinzugefügt, um die Appstore-Verbindungsrichtlinien einzuhalten. Nachdem ich diese E-Mail erhalten hatte, konnte ich die App auch testen, wenn sie sagten, dass der Build einige Probleme hatte.

Ich hoffe das funktioniert für euch. 

24
vroldan

Sie können Ihre App auch dann einreichen, wenn Sie diese Nachricht erhalten haben!

Ich habe gestern das gleiche Problem gehabt, auch wenn die App die Standortfunktionalität nicht verwendet. Es kann sich auf ein Framework beziehen, das im Projekt enthalten ist und über diese optionale Funktion verfügt. 

Ich kann bestätigen, dass meine App genehmigt wurde auch ohne den Schlüssel NSLocationAlwaysUsageDescription und NSLocationWhenInUseUsageDescription in info.plist

In der Tat, wie Apple in der Mail feststellte:

Ab Frühjahr 2019 wurden alle Apps an den App Store übermittelt. dass der Zugriff auf Benutzerdaten einen Zweck enthalten muss Schnur.

Das einzige, was Sie tun müssen, ist, diesen Schlüssel in Ihr Projekt einzufügen (im Moment ist es besser, damit Sie es nicht vergessen), damit er in Ihrem nächsten Update enthalten ist.

Fügen Sie einfach zwei neue Einträge in Ihren info.plist ein, mit NSLocationAlwaysUsageDescription und NSLocationWhenInUseUsageDescription als Schlüssel und einer kurzen Beschreibung, warum Sie sie als Wert verwenden (auch wenn Sie sie nicht wirklich verwenden ...). 

10
AnthoPak

Wir haben dieselbe E-Mail erhalten und verwenden den CoreLocation überhaupt nicht. Nach einer schnellen Suche haben wir festgestellt, dass Parse SDK CoreLocation verwenden kann. In Apples E-Mail heißt es eindeutig: 

If you're using external libraries or SDKs, they may reference APIs that require a purpose string.

Das heißt, die Minute, in der Ihr Code oder jede andere Bibliothek oder SDKs CoreLocation verwenden kann. Auch wenn Sie ihn nicht verwenden, müssen Sie eine Datenschutzbeschreibung für When In Use und Alway Use angeben.

Es ist auch etwas Neues von Apple und vorerst nur eine Warnung, die ab Frühjahr 2019 für neue Einsendungen erforderlich sein wird.

6
sebleclerc

NSLocationAlwaysUsageDescription Ihr Standort ist für die xyz-Vorteile für Sie erforderlich. NSLocationWhenInUseUsageDescription Ihr Standort ist für die xyz-Leistungen für Sie erforderlich

6
Sumit Sharma

Es ist eine neue Anforderung von Apple, auch wenn Sie keinen Standort verwenden. Wenn Sie die Berechtigungen in Xcode hinzufügen möchten, suchen Sie nach "Privacy - Location Usage Description" und "Privacy - Location Using Use Usage Description" und geben Sie eine benutzerdefinierte Zeichenfolge ein.

 enter image description here

5

Dieses Problem tritt auf, weil Sie nicht aufgenommen haben 

 <NSLocationAlwaysUsageDescription>

für deine App. Ich hatte das gleiche Problem, als ich versuchte, meine App im AppStore einzureichen. Nachdem die App verarbeitet wurde, erhielt ich dieselbe Mail. Ich habe gerade die Beschreibung hinzugefügt und jetzt ist sie gelöst.

Hoffe das hilft.

4
Sachin Nautiyal

so jetzt haben wir 4 Fälle ..

NSLocationAlwaysAndWhenInUseUsageDescription (iOS>11)
NSLocationWhenInUseUsageDescription          (iOS>11)
NSLocationAlwaysUsageDescription             (iOS<=10)
NSLocationUsageDescription                   (seems very old, iOS8?)

Apple gibt an bei: 

"Add the NSLocationWhenInUseUsageDescription key and the NSLocationAlwaysAndWhenInUseUsageDescription key to your Info.plist file."

Und:

"If your app supports iOS 10 and earlier, add the NSLocationAlwaysUsage"

NSLocationUsageDescription scheint tot zu sein, der einzige Hinweis auf der ADC-Site lautet: " https://developer.Apple.com/ibeacon/Getting-Started-with-iBeacon.pdf

Um sicherzugehen, verwenden Sie zuerst 3.

3
ingconti

In diesen Antworten erfahren Sie, wie Sie die App Store-Regeln einhalten, um die Warnung zu vermeiden. Die richtige Lösung wäre jedoch, dass Expo die SDKs für Location Services deaktiviert, sofern Sie sie nicht tatsächlich verwenden möglich.

2
Calvin

Zur Vereinfachung können Sie diese Zeilen in Ihre info.plist einfügen. Diese Fehler treten auf, weil Ab Frühjahr 2019 müssen alle Apps, die an den App Store gesendet werden und auf Benutzerdaten zugreifen, eine Zweckzeichenfolge enthalten.

  1. Öffnen Sie info.plist als Quellcode.
  2. Fügen Sie diese Zeilen in Ihre Liste ein

    <key> NSLocationAlwaysAndWhenInUseUsageDescription </key>
    <string> $(PRODUCT_NAME) needs Location access for "some reason"! </string>
    <key> NSLocationWhenInUseUsageDescription </key>
    <string>$(PRODUCT_NAME) needs Location access for "some reason"! </string>
    <key> NSLocationAlwaysUsageDescription </key>
    <string>$(PRODUCT_NAME) needs Location access for "some reason"! </string>
    
1
Sachin Nautiyal

Bitte überprüfen Sie die E-Mail, die Sie von ** App Store Connect ** erhalten haben.

Identifizieren Sie den fehlenden Schlüssel enter image description here

Anleitung

  1. Öffnen Sie die Datei info.plist.

  2. Fügen Sie den fehlenden Schlüssel hinzu und suchen Sie ihn aus den verfügbaren Optionen (z. B. Kontakte = Datenschutz - Beschreibung der Verwendung der Kontakte).

  3. Verwendungsbeschreibung hinzufügen:

$ (PRODUCT_NAME) benötigt Kontaktzugriff auf "Geben Sie den Grund hier an".

Beispiel:

1
Zeus

Ich habe auch das gleiche Problem, aber nach 27 Stunden erhielt ich die E-Mail über genehmigt, obwohl ich nichts getan habe. Warten Sie also ca. 24 Stunden, anstatt den gesamten Vorgang erneut durchzuführen.

0
Abdul Qayum

Ich hatte <key>NSLocationWhenInUseUsageDescription </key> anstelle von <key>NSLocationWhenInUseUsageDescription</key>

achten Sie darauf, nachfolgende Leerzeichen zu entfernen

dieselbe Ausgabe im Februar 19, erhielt eine E-Mail mit einer Reihe von Berechtigungen, die ich nicht verwende. Ich gehe davon aus, dass sie von Plugins stammen. Apple sagt, dass es im März 19 eine Anforderung ist, also füge ich diese in info.plst hinzu und lade erneut hoch. 

Es ist wirklich sehr dumm. 

0
Rick Chen

Meine App hat auch das - und ich tue nichts dagegen, aber es kann gut laufen, das nächste Mal, wenn ich denke, sollte einen solchen Schlüssel in plist hinzufügen, einfach eine Beschreibung

0