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 ?
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.",
},
},
}
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.
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 ...).
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.
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
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.
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.
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.
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.
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.
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>
Bitte überprüfen Sie die E-Mail, die Sie von ** App Store Connect ** erhalten haben.
Identifizieren Sie den fehlenden Schlüssel
Anleitung
Öffnen Sie die Datei info.plist.
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).
Verwendungsbeschreibung hinzufügen:
$ (PRODUCT_NAME) benötigt Kontaktzugriff auf "Geben Sie den Grund hier an".
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.
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.
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