No se encuentran los complementos de IOS de Phonegap 3.0

Estoy obteniendo este error en XCode:

2013-08-23 14:36:18.284 Tell The DJ[14955:c07] ERROR: Plugin 'Device' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml. 2013-08-23 14:36:18.284 Tell The DJ[14955:c07] -[CDVCommandQueue executePending] [Line 116] FAILED pluginJSON = [ "Device1096677259", "Device", "getDeviceInfo", [ ] ] 2013-08-23 14:36:18.285 Tell The DJ[14955:c07] CDVPlugin class CDVConnection (pluginName: NetworkStatus) does not exist. 2013-08-23 14:36:18.285 Tell The DJ[14955:c07] ERROR: Plugin 'NetworkStatus' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml. 2013-08-23 14:36:18.285 Tell The DJ[14955:c07] -[CDVCommandQueue executePending] [Line 116] FAILED pluginJSON = [ "NetworkStatus1096677260", "NetworkStatus", "getConnectionInfo", [ ] ] 

Instalé Phonegap 3.0 con Command Line Interface y pegué mis archivos www en las carpetas del proyecto. La aplicación funciona bien, pero cuando llegué a funciones nativas como la identificación del dispositivo, la cámara, las conexiones de red falla y me da este error. Pero creo que mi config.xml es correcto?

   Hello Cordova  A sample Apache Cordova application that responds to the deviceready event.   Apache Cordova Team                                                                       

Estaba usando PhoneGap 3.0 / 3.1 y estaba eliminando la carpeta de comstackción local antes de reconstruir (ya que tuve que copiar icons y cosas en una secuencia de comandos de comstackción secundaria). Esto rompió mis complementos y produjo este mismo mensaje de error.

Al final, descubrí que tenía que eliminar ./plugins/ios.json al eliminar ./platforms/ios para asegurarme de que los complementos se reconstruyeran.

Eliminar la carpeta plataformas / ios no es una solución para mí, ya que se perderán todas las personalizaciones manuales del proyecto xcode.

Pero hay un camino simple:

En XCode, vaya a Crear Fases -> abra el menú desplegable Fuentes comstackdas. Haga clic en + y agregue el archivo .m del complemento faltante que debería estar en su directorio de complementos (pero falta en las fonts comstackdas).

Esta solución vino de otra respuesta de desbordamiento de stack, aquí: https://stackoverflow.com/a/21148428/80254

Otra alternativa:

En xcode, asegúrese de que los archivos de origen del complemento tengan configuradas las configuraciones de “membresía de destino”: en File-Explorer, vaya a Complementos> CDVDevice.m y compruebe si hay una marca al lado del nombre de la aplicación en “membresía de destino” a la derecha lado de la ventana xcode. Esto realmente hace lo mismo que la otra solución, pero es un poco más conveniente.

Desde aquí: https://stackoverflow.com/a/20576744/80254

Me encontré con el mismo problema. He seguido la solución dada por Jeffrey Van Alstine. Este es mi script para construir y probar una aplicación para iOS desarrollada con Phonegap 3.0 / 3.1.

 #!/bin/bash echo "Killing xcode..." kill $(ps aux | grep 'Xcode' | awk '{print $2}') rm -r platforms/ios rm plugins/ios.json phonegap build ios open platforms/ios/*.xcodeproj 

ios.sh como un archivo bash, por ejemplo, ios.sh en su directorio de trabajo (directorio que contiene la carpeta www ) y ejecute ./ios.sh

Este parece ser un problema conocido para las versiones 3. *

https://issues.apache.org/jira/browse/CB-4971

puedes resolver esto actualizando Phonegap al lanzamiento 3.4.

Intente volver a instalar el complemento:

el complemento local de phonegap agrega https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git

Uso Cordova 3.7 y resolví el problema con la solución de Kobkrit Viriyayudhakorn, PERO, por supuesto, debe usar

 cordova build ios 

en lugar de

 phonegap build ios 

Creo que necesita usar el config.xml correcto para mí, es la carpeta de destino del proyecto Xcode config.xml y no la carpeta de la plataforma www

He encontrado una solución que funcionó para mí. Estaba usando el plugin Compass y después de agregar el plugin noté que config.xml (plugin docs) dice que debería tener

     

mientras que el ios.json en el complemento ha agregado

  "config.xml": { "/*": { "": 1, "": 1 } 

Uno de ellos se refiere a CDVCompass mientras que el otro CDVLocation … cambiando el xml a CDVCompass hizo el truco y ahora la aplicación está funcionando.

¡Estoy tan cansado de eliminar y volver a agregar plataformas para problemas de complementos! Parece que todavía es un problema incluso ahora (2014/10) en el que si agrega complementos a una aplicación después de agregar plataformas, el complemento en algún momento no se propaga a las carpetas de plataforma correspondientes / etc. Tenga en cuenta que esto parece afectar principalmente a iOS, no a Android.

Creo que mi solución es solo un método actualizado de hacer lo mismo que bjunix publicado antes, pero en XCode 6 para arreglar este tipo de cosas sin eliminar / volver a agregar mi plataforma I:

  • Expande mi carpeta de aplicaciones / complementos en el panel izquierdo del navegador del proyecto
  • Haga clic en cada archivo de complemento en la lista que se encuentra actualmente en texto rojo (uno a la vez)
  • Vaya al panel del lado derecho (Utilidades) y haga clic en el icono de la carpeta en la sección Identidad y Tipo para volver a vincularlo al archivo real (consulte la captura de pantalla a continuación).

Después de hacer lo anterior, mi proyecto finalmente se construye.

enter image description here

Cuando esto sucede, parece que el paquete xcode npm responsable de realizar cambios en el archivo pbxproj a veces deja referencias a archivos de complemento que se han eliminado. No he rastreado en qué circunstancias exactas ocurre esto, pero parece ocurrir a partir de las operaciones frecuentes de eliminación / adición de complementos (para actualizar un complemento, por ejemplo).

Sospecho que cuando se elimina un complemento y el paquete xcode npm falla en su trabajo, solo puede eliminar las referencias del archivo de complemento de la sección PBXBuildFile pero no otras secciones, dejando el pbxproj en un estado dañado.

Cuando el paquete xcode npm intenta agregar nuevamente las referencias al archivo del complemento, primero verifica si las referencias ya están en pbxproj. Se ve en la sección PBXFileReference, y como encuentra referencias al plugin allí, cancela el procesamiento posterior, no nos lleva a ninguna parte.

Mi solución, aunque sea un truco a la hora de hacerlo, es forzar al paquete xcode npm a que revise la sección PBXBuildFile. A esa sección le faltarán las referencias y, a su vez, el complemento se volverá a instalar correctamente.

Cambie pbxFileReferenceSection a pbxBuildFileSection en esta línea: https://github.com/alunny/node-xcode/blob/master/lib/pbxProject.js#L620

Reinstala tus complementos, y deberías estar listo para continuar.

Yo mi caso Después de instalar el complemento Paypal estoy enfrentando un problema.

Lo resolví agregando “PayPalMobileCordovaPlugin.m” en la fuente de comstackción.

De modo que solo necesita agregar el archivo .m en comstackr fuente agregue que funciona para mí.

Ver captura de pantalla. Captura de pantalla después de agregar el archivo .m

Espero que sea un trabajo para ti

Esto también puede suceder si tiene un complemento al que se hace referencia pero no está instalado. Si ha probado las soluciones anteriores y no puede encontrar el archivo .m del complemento al que se hace referencia, es posible que el complemento no esté realmente instalado.

Verificaría el directorio de tus complementos para asegurarte de que hay archivos en él. Si no, reinstale el complemento. Me encontré con esto cuando tuve un error tipográfico en el repository git al restaurar complementos desde el config.xml.

Resolví este problema cambiando la entrada de “complemento” a una entrada de “función” en config.xml. (usando PhoneGap 3.1 / iOS). Así es como se veía la solución:

    

Resolví este problema con la reinstalación completa de Node.js y Phonegap a través de la herramienta CLI