ios app-store expo appstore-approval info.plist

ios - Error Appstore connect: Falta la cadena de propósito en el archivo Info.plist



app-store expo (15)

## Use esta clave en el archivo info.plist

NSLocationAlwaysUsageScriptionDescription Su ubicación es necesaria para los beneficios de xyz para usted NSLocationWhenInUseUsageDescription Su ubicación es necesaria para los beneficios de xyz para usted

He enviado mi aplicación para su revisión a AppStore Connect. Aunque la aplicación aún está siendo revisada, recibí un correo electrónico para informarme que tengo que corregir un error. Aquí está el contenido del mensaje:

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

Mi aplicación está totalmente construida con expo y no sé cómo acceder y modificar el Info.plist.

Alguna idea ?


Así que ahora tenemos 4 casos ..

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

Apple declara en:

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

Y:

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

NSLocationUsageDescription parece muerto, la única referencia en el sitio de ADC es: " https://developer.apple.com/ibeacon/Getting-Started-with-iBeacon.pdf "

Así que para estar seguro, utilice primero 3.


Es un nuevo requisito de Apple, incluso si no utiliza la ubicación. Si desea agregar los permisos en Xcode, busque "Privacidad - Descripción del uso de la ubicación" y "Privacidad - Ubicación cuando esté en uso Descripción de uso" y escriba una cadena personalizada para cada uno de ellos.


Este problema está ocurriendo porque no has incluido

<NSLocationAlwaysUsageDescription>

para su aplicación Me enfrenté al mismo problema cuando intenté enviar mi aplicación en la AppStore. Después de que la aplicación fue procesada, recibí el mismo correo. Acabo de añadir la descripción y ahora está resuelta.

Espero que esto ayude.


Mi aplicación también consiguió eso, y no hago nada al respecto, pero puede funcionar bien, la próxima vez creo que debería agregar esa clave en la lista, solo haga una descripción


Para una mayor simplificación, puede agregar estas líneas en su info.plist. Estos errores se producen porque a partir de la primavera de 2019, todas las aplicaciones enviadas a la App Store que tengan acceso a los datos del usuario deberán incluir una cadena de propósito.

  1. Abre info.plist como código fuente.
  2. Añade estas siguientes líneas en tu lista

    <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>


Recibimos el mismo correo electrónico y no estamos usando CoreLocation en absoluto. Después de una búsqueda rápida, encontramos que Parse SDK podría usar CoreLocation. En el correo electrónico de Apple, dicen claramente:

Si está utilizando bibliotecas o SDK externos, pueden hacer referencia a las API que requieren una cadena de propósito.

Eso significa que en el momento en que su código o cualquier otra biblioteca o SDK pueda usar CoreLocation, incluso si no lo usa, debe proporcionar una descripción de privacidad para "Cuándo está en uso" y "Usar siempre".

También es algo nuevo para Apple y por ahora es solo una advertencia, pero será necesario a partir de la primavera de 2019 para las nuevas presentaciones.


Revise el correo electrónico que recibió de ** App Store Connect **

Identificar la clave que falta

Instrucciones

  1. Abra el archivo info.plist.

  2. Agregue y busque la clave que falta en las opciones proporcionadas (por ejemplo, Contactos = Privacidad - Descripción del uso de contactos)

  3. Añadir descripción de uso:

$ (PRODUCT_NAME) necesita acceso de Contactos para "Proporcionar el motivo aquí".

Ejemplo:


Si está utilizando Expo, puede agregar resolver agregando infoPlist a app.json así:

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

Expo docs


También me enfrento al mismo problema, pero después de 27 horas, recibí el correo electrónico sobre el que aprobé aunque no hice nada. Así que espere aproximadamente 24 horas en lugar de repetir todo este proceso.


Tengo <key>NSLocationWhenInUseUsageDescription </key> lugar de <key>NSLocationWhenInUseUsageDescription</key>

asegúrese de eliminar los espacios en blanco al final


Tengo algunas aplicaciones en la tienda e intenté distribuir una versión para control de calidad y sucedió lo mismo en dos aplicaciones diferentes. Creo que este es un nuevo criterio para aceptar las subidas de compilaciones a AppStore Connect.

La solución es simple, agregue las siguientes líneas en el archivo .plist.

<key>NSLocationAlwaysUsageDescription</key>
<string>custom message</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>custom message</string>

PD: En mi caso, no he usado ninguna función de ubicación, pero agregué estas líneas para cumplir con las pautas de conexión de AppStore. Por cierto, después de recibir ese correo electrónico, pude probar la aplicación incluso cuando dijeron que la compilación tenía algunos problemas.

Espero que esto funcione para ustedes.


Todas estas respuestas le dicen cómo cumplir con las reglas de la App Store para evitar la advertencia, pero la verdadera solución sería que Expo le permita deshabilitar el requisito de SDK para los servicios de ubicación a menos que realmente los use. No estoy seguro de si esto es así. posible.


el mismo problema en febrero 19, recibí un correo electrónico con un montón de permisos que no estoy usando, asumo que son de complementos. Apple dice que el 19 de marzo es un requisito, así que los estoy agregando en info.plst y los estoy cargando nuevamente.

Es muy tonto por cierto.


EDITAR en abril de 2019 : ahora debe agregar estas dos teclas, ya que la primavera de 2019 ha comenzado. Tenga en cuenta que NSLocationAlwaysUsageDescription ahora está en desuso (desde iOS 11) y ha sido reemplazado por NSLocationAlwaysAndWhenInUseUsageDescription y NSLocationWhenInUseUsageDescription . Si desea una compatibilidad inferior a iOS 11, deberá utilizar los tres valores.

Para resumir tienes que:

  • Agregue NSLocationAlwaysAndWhenInUseUsageDescription AND NSLocationWhenInUseUsageDescription para iOS 11 y más
  • Y agregue NSLocationAlwaysUsageDescription si desea admitir iOS 10 y menos
  • Y finalmente, puede agregar NSLocationUsageDescription si quiere ser compatible con iOS 8 y menos.


¡Puedes enviar tu aplicación incluso si recibiste este mensaje!

Ayer acabo de enfrentar el mismo problema, incluso si la aplicación no está usando la funcionalidad de ubicación. Puede estar relacionado con algún marco incluido en el proyecto que tenga esta característica opcional.

Puedo confirmar que mi aplicación ha sido aprobada incluso sin la clave NSLocationAlwaysUsageDescription y NSLocationWhenInUseUsageDescription en info.plist

De hecho, como Apple declaró en el correo:

A partir de la primavera de 2019, todas las aplicaciones enviadas a la App Store que tengan acceso a los datos del usuario deberán incluir una cadena de propósito.

Entonces, lo único que debe hacer es agregar esta clave (en este momento es mejor, para que no se olvide) en su proyecto para que se incluya en su próxima actualización .

Solo agregue dos nuevas entradas en su info.plist , con NSLocationAlwaysUsageDescription y NSLocationWhenInUseUsageDescription como claves y una breve descripción de por qué los usa como valor (incluso si realmente no los usa ...).