yes style pwa name icon home content color capable bar apps apple app ios cordova hybrid-mobile-app

ios - style - pwa safari icon



Falta la clave de descripciĆ³n de informaciĆ³n de NSCameraUsage de Cordova (8)

Después de los cambios recientes, Apple requiere claves específicas si su aplicación intenta acceder a datos confidenciales. Así que agregué la clave NSCameraUsageDescription en mi config.xml de esta manera:

<platform name="ios"> <config-file parent="NSCameraUsageDescription" target="*-Info.plist"> <string>We are using a camera to </string> </config-file> </platform>

Entonces

cordova build ios --release --device

produce el ipa que aparentemente no tiene la información correcta en info.plist. Se siente como si me estuviera perdiendo algo.

Pregunta 1: ¿Qué necesito poner en config.xml para resolver el problema de la descripción de NSCameraUsage? Pregunta 2: ¿Es posible utilizar la localización para esta cadena?

¡Gracias!


Aquí están los resultados de mi propia investigación:

    • Sí, puede modificar info.plist del archivo config.xml usando la etiqueta config-file, pero debe usar un complemento para eso (configuración personalizada de cordova) y seguir las instrucciones religiosamente.
    • Sin embargo, probablemente una mejor opción es usar plugin.xml para hacer lo mismo. Puedes leer más sobre esto aquí (modificando la lista de información de plugin.xml)
    • Otra opción como se mencionó en @jcesarmobile: el complemento actual de la cámara puede admitirlo como el complemento cordova ( esta solución es específica del complemento )

Por favor, corrígeme si me equivoco. Se agradece más información sobre la localización directamente desde config.xml .

Personalmente, no me gusta la idea de usar un complemento personalizado para modificar un archivo info.plist . Parece que con cada nuevo complemento que uso hace que mi aplicación sea cada vez más frágil. :)


Busqué mucho tiempo e intenté muchas soluciones sin éxito.

Finalmente, definí estos datos con Xcode en la pestaña Información en la línea

Privacy - Camera usage description

Me ahorra mucho tiempo.


NUEVA RESPUESTA:

Desde Cordova CLI 6.5.0, puede escribir en info.plist directamente usando la etiqueta edit-config en el config.xml esta manera:

<edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge"> <string>your usage message</string> </edit-config> Pero asegúrese de estar usando la última versión de los complementos o valores pueden ser sobrescritos por las variables del complemento.

Para las localizaciones puede usar la etiqueta del resource-file y los archivos InfoPlist.strings como en este complemento (pero no necesita el complemento, la etiqueta del archivo de recursos es compatible desde el archivo config.xml)

https://github.com/MBuchalik/cordova-plugin-ios-permissions

ANTIGUA RESPUESTA:

No se puede escribir en el info.plist del info.plist config.xml utilizando la etiqueta config-file (se está trabajando en)

La última versión del complemento de la cámara le permite agregar la NSCameraUsageDescription del NSCameraUsageDescription al instalar el complemento

cordova plugin add cordova-plugin-camera --variable CAMERA_USAGE_DESCRIPTION="your usage message"

En este momento no es posible localizar esta cadena


Para iOS 10/11, puede utilizar cordova-plugin-ios-camera-permissions como un acceso directo.

Proporciona valores predeterminados y documentación clara sobre cómo proporcionar mensajes personalizados.

cordova plugin add cordova-plugin-ios-camera-permissions --save

Si ya ha configurado la plataforma iOS, puede que sea necesario eliminar y volver a agregar.

$ cordova platform rm ios $ cordova platform add ios


Primero, esto me funciona con Cli-7.1.0 después de que Apple rechaza mi ipa.

1) En su código, si lo usa por ej. cordova-plugin-barcodescanner y cordova-plugin-camera y cordova-plugin-ios-camera-permissions todas las variables CAMERA_USAGE_DESCRIPTION, PHOTOLIBRARY_USAGE_DESCRIPTION deben tener la misma cadena en su interior . Si uno de ellos es diferente, Apple rechaza tu ipa, porque phonegap usa la variable predeterminada.

ej:

<plugin name="cordova-plugin-ios-camera-permissions" > <variable name="CAMERA_USAGE_DESCRIPTION" value="YOUR-PERMISSION-REQUEST" /> <variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="YOUR-PERMISSION-REQUEST" /> </plugin><!-- spec="1.0.3" !--> <plugin name="cordova-plugin-camera" > <variable name="CAMERA_USAGE_DESCRIPTION" value="YOUR-PERMISSION-REQUEST" /> <variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="YOUR-PERMISSION-REQUEST" />

<gap:plugin name="cordova-plugin-image-picker" source="npm" /> <gap:plugin name="cordova-plugin-base64-joewsh" source="npm" /> <!-- convertir a base64 los files !--> <gap:plugin name="cordova-plugin-barcodescanner" source="npm" spec="0.7.0" > <variable name="CAMERA_USAGE_DESCRIPTION" value="YOUR-PERMISSION-REQUEST" /> </gap:plugin>

2) agregue este código (recuerde usar la misma cadena en las variables, como mencioné antes):

<platform name="ios"> <edit-config target="NSLocationWhenInUseUsageDescription" file="*-Info.plist" mode="merge" overwrite="true"> <string>YOUR-PERMISSION-REQUEST</string> </edit-config> <edit-config target="NSPhotoLibraryUsageDescription" file="*-Info.plist" mode="merge" overwrite="true" > <string>YOUR-PERMISSION-REQUEST</string> </edit-config> <edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge" overwrite="true"> <string>YOUR-PERMISSION-REQUEST</string> </edit-config> </platform>


Puede editar manualmente el archivo .plist dentro de su proyecto de cordova si lo desea. Esto funcionó para mí, pero como es un archivo generado, me preocupa que en algún momento se sobrescriban mis cambios.

¡Pero a ayudar!

El archivo .plist debe estar ubicado dentro de su proyecto de Cordova dentro de /platforms/ios/[Cordova Project Name]/[Cordova Project Name]-Info.plist . También puede abrir el proyecto en Xcode y, a la izquierda, hacer clic en el icono de la Lupa que le permitirá buscar archivos en el proyecto. Si ingresas en info.plist debería devolver un resultado que muestre algo como:

INFOPLIST_FILE = [Some]/[Path]/[Cordova Project Name]-Info.plist

Esta ruta debe ser relativa a la instalación del proyecto de Cordova, por lo que la búsqueda dentro de su proyecto lo llevará al archivo correcto.

Abrí este archivo en mi editor y agregué las siguientes líneas justo dentro de la primera etiqueta de apertura <dict> :

<key>NSCameraUsageDescription</key> <string>Uses camera to allow video chatting between two clients</string>

Pude enviar y hacer que mi compilación aparezca y permanezca en itunesconnect. Actualmente todavía en espera de revisión de la aplicación.

Ejecuté una versión de Cordova cordova prepare ios solo para comprobar si mis cambios se sobrescribieron, lo que no sucedió, así que parece que deberías poder hacer esto y no preocuparte por eso, sino estar cansado de que otros desarrolladores instalen tu aplicación y se encuentren en el. mismo problema Acabo de copiar mi archivo .plist actualizado en la raíz de mi repositorio y lo anoté en el archivo Léame.


Ve a tu proyecto >> Abrir Terminal allí

y ejecuta este comando

cordova plugin add cordova-plugin-camera --variable CAMERA_USAGE_DESCRIPTION="Allow the app to use your camera" --variable PHOTOLIBRARY_USAGE_DESCRIPTION="Allow the app to access your photos"

Puede seguir modificando los valores "Permitir que la aplicación use su cámara" "Permitir que la aplicación acceda a sus fotos" según sus necesidades.


$ cordova plugin add cordova-plugin-camera --variable CAMERA_USAGE_DESCRIPTION="this app will use your camera" --variable PHOTOLIBRARY_USAGE_DESCRIPTION="this app will access to your photo library"

Debes leer dentro de ./plugins/plugin-what-ever/plugin.xml para ver qué tipo de nombres de clave son compatibles.