2012-02-01 13 views
12

Me está costando mucho trabajo hacer que XMPPFramework funcione. He seguido todas las instrucciones escritas en la red, y XCode no encuentra ninguna de mis clases de XMPPFramework.¿Instrucciones actualizadas sobre cómo instalar XMPPFramework manualmente?

Expected specifier-qualifier-list before 'XMPPStream' XMPP.h: No such file or directory XMPPRoster.h: No such file or directory

Tengo XMPPFramework copiado en el directorio raíz de mi proyecto. ¿Por qué no se pueden ver estos archivos? ¿Hay algo que deba hacer en las Rutas de búsqueda de encabezado o en las Rutas de búsqueda de bibliotecas?

He establecido esas entradas en $ (heredado) y $ (SRCROOT) y XCode 4.2 se rellena automáticamente en el directorio raíz de mi proyecto y todavía no encuentra mis archivos.

Estoy bastante seguro de que no soy el único que tiene este problema, y ​​es sorprendente. ¿Algunas ideas?

+0

Estas instrucciones de @ Brian ya no funcionan, (no) gracias a esta confirmación: https://github.com/robbiehanson/XMPPFramework/commit/5aafcdfd27b6b4403e6e357f5687fabded3362ec Si desea utilizar estas instrucciones, revertir esta cometió y entonces las cosas trabaja de nuevo. – Joe

Respuesta

4

En la wiki XMPPFramework gitHub 1 hay una instrucción paso a paso que ayuda a configurar XMPPFramework para su proyecto.

De hecho, el error que ha mencionado está cerca de lo que también se indica en las instrucciones.

"However, upon importing an XMPPFramework class, such as by calling '#import XMPP.h' will cause XCode to show an error 'XMPP.h' not found. It appears that XCode is not finding any of the XMPPFramework files."

espero que esto le da suficiente información para resolver este problema que está enfrentando, a pesar de que las instrucciones no están destinados específicamente a iOS-5.

+1

Aunque esta es la respuesta aceptada, la publicación a continuación para Brian es más adecuada para Xcode 6. –

+0

@jarlh, hermano ¿Puede ayudarme con este problema? Https://stackoverflow.com/questions/44172852/how-to-parse-xmppmessage -element-attribute-and-node-in-xmppframework-with-swif? –

36

La wiki en github está desactualizada. Aquí es cómo instalé manualmente XMPPFramework.

Paso 1

clonar el XMPPFramework repository a algún lugar de su máquina y arrastrar las carpetas necesarias en somewhere/XMPPFramework a su proyecto Xcode.

Las carpetas necesarias son:

  • Vendedor/CocoaAsyncSocket
  • Vendedor/CocoaLumberjack
  • Vendedor/KissXML
  • vendedor/libidn
  • autenticación
  • Categorías
  • Core
  • Utilidades

También puede ser necesario Extensions, aunque es opcional.

Es importante seleccionar los botones casilla/de radio exactamente igual que esta imagen al arrastrar carpetas a su Xcode:

enter image description here

Paso 2

a) Arrastre Sample_XMPPFramework.h a su Xcode y seleccione la casilla de verificación/botones de radio como el paso 1

b) Cambiar el nombre a XMPPFramework.h

c) personalizar el contenido de XMPPFramework.h en función de sus necesidades. (No cambia nada)

La estructura de archivos debe tener este aspecto en Xcode navegador de proyecto después de hacer el paso 1 y 2:

enter image description here

Paso 3

enlace siguiente marcos y bibliotecas

  • CFNetwork.framework
  • Security.framework
  • libxml2.dylib
  • libresolv.dylib
  • libidn.a

enter image description here

Paso 4

Añadido estas 2 líneas a Build Settings:

  • otro enlazador flags = -lxm L2 enter image description here
  • CAMINOS CABECERA search =/usr/include/libxml2 enter image description here

Usted debe ser bueno después de estos 4 pasos. Sin embargo, tenga en cuenta que generalmente necesita #import <UIKit/UIKit.h> antes de usar XMPPFramework

+2

Gracias por este post, me ayudó mucho. Pero debo decir que todo este proceso se siente deprimente y frágil. –

+1

La extensión de Facebook aparentemente no funciona en el iPhone (no se compila porque, por algún motivo, no encuentra una de las dependencias, que está en un proyecto dentro de ella). No he logrado resolver el problema, así que eliminé la extensión de Facebook. – Velociround

+0

Cuando publiqué esta respuesta, cada extensión funcionó correctamente. Tal vez es un nuevo error en la nueva versión de esta biblioteca. – Brian

0

Información adicional relacionada con las instrucciones en la respuesta de @ Brian.

adición a Paso 3:
Si un archivo lib como libxml2.dylib no está disponible en el "Elegir marcos y bibliotecas para añadir" ventana, siga estos pasos para encontrarlo:

  1. Haga clic Add Other...
  2. En la ventana de selección de archivos, COMMAND+SHIFT+G (Ir a carpeta)
  3. Tipo /usr/lib y luego Enter o haga clic en Go
  4. Seleccione el.dylib archivo que necesita y haga clic en Open

Después del paso 4:
También tenga en cuenta que XMPPFramework y sus dependencias utilizan ARC. Si su aplicación utiliza principalmente MRR en lugar de ARC, ya sea convertir su aplicación a ARC o realice el paso 5.

Paso 5

Añadir -fobjc-arc bandera compilador para los archivos XMPPFramework.

En Xcode, para cada objetivo que va a utilizar XMPPFramework,

  • Ir a la configuración del objetivo
  • Ir a Build Phases
  • Expand Compile Sources
  • Seleccionar todos los archivos XMPPFramework-relacionadas en la lista
  • Presione Enter para abrir la ventana de edición de indicadores de compiladores
  • Tipo -fobjc-arc
  • Enter nuevamente para guardar el cambio.

La lista Compile Sources es sin clasificar, por lo que es útil usar el campo de búsqueda para filtrar la lista de XMPP y luego en XEP. Eso encuentra la mayoría de los archivos, pero todavía hay algunos que deben seleccionarse de la lista completa de archivos.

Cuestiones relacionadas