edit-config para descripciones de uso de ios: doc.find no es una función

Respuestas:

175

Creo que el error se ha producido cuando el platforms/ios/ios.jsonarchivo entra en conflicto con el config.xml.

Para resolver este problema, elimine la *-Info.plistclave y su valor platforms/ios/ios.jsony cordova prepare iosvuelva a hacerlo .

--- añadiendo 17 / mayo / 2020 ---

Si algunos complementos tienen una config-fileetiqueta para *-Info.plisty config.xml tiene una edit-configetiqueta para *-Info.plist, puede suceder este error. En este caso, elimine platforms/*y plugins/*, y luego cordova platform add iosy cordova prepareotra vez. (Si cordova prepareprescinde cordova platform add ios, este error puede ocurrir)

KNaito
fuente
7
¡Buena solución considerando lo poco informativo que es este error!
jdixon04
7
Si esta solución no funciona para usted, vaya a sus plataformas> ios> archivo ios.json y dentro de la clave principal * -Info.plist, agregue el nuevo valor que se agregó al archivo config.xml. Por ejemplo, si agrega la etiqueta edit-config NSPhotoLibraryUsageDescription, agregue:"NSPhotoLibraryUsageDescription": [ { "xml": "<string>Need photo library access to get pictures from there.</string>", "count": 1, "mode": "merge", "id": "config.xml" } ],
Juan Bernal
7
Esto ayudó, pero lea esto ( stackoverflow.com/a/48558496/1176567 ). Si simplemente elimina la plataforma cordova ios y la agrega nuevamente, funcionará. Este problema ocurre cuando la plataforma ios ya está agregada y luego actualizamos el config.xml con <edit-config>.
jsr
55

Existe un problema existente con el <edit-config>conflicto con platforms/ios/ios.jsoncuando *-Info.plistya está poblado en el jsonarchivo a partir de Cordova 7.1.0

He solucionado el problema usando en su <config-file>lugar.

Solución:

<config-file target="*-Info.plist" parent="NSLocationWhenInUseUsageDescription">
    <string>need location access to find things nearby</string>
</config-file>
Shien Hong
fuente
1
Apple ahora está solicitando NSLocationAlwaysUsageDescription, esto resuelve mi problema, ¡muchas gracias!
David Dal Busco
1
Esta es la respuesta perfecta.
Neel
34

He hecho esto con Ionic 3. Funciona bien ahora :)

Solución:

ionic cordova platform remove ios
ionic cordova platform add ios

Al volver a agregar la plataforma iOS, se creará el ios.jsonarchivo de nuevo.

Sampath
fuente
¡Asombroso! No se pudo encontrar ninguna documentación sobre esto.
ken
2
Esta es una especie de opción nuclear ... no la intentes primero.
mmmpop