2011-05-31 15 views
8

Debo estar haciendo algo totalmente estúpido aquí, pero no puedo incluir el marco PLCrashReporter en mi proyecto. Estos son los pasos que tomó para conseguir el marco:PLCrashReporter en XCode 4 - no se compilará en el simulador

  1. descargado el archivo .dmg desde el sitio oficial del proyecto de código de
  2. Google copiado la carpeta CrashReporter.framework al directorio raíz de mi proyecto
  3. Agregado el marco yendo a mi proyecto, seleccionar el objetivo, ir a la pestaña Fases de construcción, la apertura de la sección Enlace binarias con las bibliotecas, al hacer clic en el signo más, y añadiendo la carpeta CrashReporter.framework

estoy tirando en el marco en mi archivo de clase utilizando

#import <CrashReporter/CrashReporter.h>

Cuando intento compilar el punto 4.3 del simulador, consigo los siguientes errores:

símbolos no definidos para la arquitectura i386: "_OBJC_CLASS _ $ _ PLCrashReporter", hace referencia a partir de: clase objc-ref en AppDelegate + CrashReporting.o "_OBJC_CLASS _ $ _ PLCrashReport", hace referencia a partir de: clase objc-ref en AppDelegate + CrashReporting.o ld: símbolo (s) no encontrado para la arquitectura i386 sonido metálico: error: comando enlazador falló con salida código 1 (use -v para se e invocación)

Cuando compilo en el dispositivo, todo está bien. ¿Hay algún tipo de ruta de búsqueda de encabezado o biblioteca que deba incluir?

La aplicación se compila en XCode 3 sin problemas en todas las configuraciones.

Respuesta

13

Tuve el mismo problema y pude resolverlo. Estos son los pasos que completé ...

  1. Descargue el PLCrashReporter source release y descomprima.
  2. Abra el proyecto PLCrashReporter xcode. Este proyecto está configurado para usar un antiguo SDK, actualizar todos los SDK necesarios para cada objetivo para eliminar las advertencias. Esto también se requiere para compilar en el siguiente paso.
  3. Navegue hasta el destino CrashReporter-iPhoneSimulator. En Configuración de compilación: a) configure "Realizar enlace previo de objeto único" a "No", b) configure "Tipo de Mach-O" a "Biblioteca estática".
  4. Seleccione CrashReport-iPhoneSimulator: [simulación IOS (es decir, simulador de iPhone 4.3)] y haga clic en compilar.
  5. Navegue a su directorio de compilación para el PLCrashReporter. Para mí, fue/Users/username/Library/Developer/Xcode/DerivedData/CrashReporter- (caracteres aleatorios)/Build/Products/Debug-iphonesimulator
  6. Copie libCrashReporter-iphonesimulator.a del directorio de compilación en el paso 5 a el directorio del proyecto de la aplicación iphone al que desea agregar el informe de fallos.
  7. Abra el proyecto de la aplicación iphone en xcode.
  8. Descargue el PLCrashReporter binary release y extraiga el marco en un directorio local.
  9. Agregue el marco CrashReporter a su proyecto usando este SO post.
  10. Siguiendo el mismo procedimiento que el paso 9, agregue la biblioteca estática libCrashReporter-iphonesimulator.a a la sección "Enlace binario con bibliotecas" de las fases de compilación. No se necesita el directorio * .framework cuando se agrega una biblioteca estática.
  11. Revise el "Enlace binario con bibliotecas" en el destino. Asegúrese de que libCrashReporter-iphonesimulator.a se encuentre en la parte superior de la estructura CrashReporter. Puede arrastrar y soltar para reordenar.

Espero que esto ayude.

+6

Acabo de decidir abandonar la idea mirando la cantidad de pasos necesarios ... – mkto

+0

Hola, el enlace del primer punto muestra 13 descargas. ¿Qué archivo deberíamos descargar? – Confused

+0

¿No sería posible dar acceso a un proyecto que ya configuraste? Es tan complicado y no creo que todos entiendan cada paso. Tampoco sé de qué SDK está hablando en el paso 2. –

1

Para cualquier otra persona en busca de esta información:

que siguieron los mismos pasos indicados anteriormente sin embargo que estaba recibiendo errores. Eliminé la biblioteca estática y solo incluí el marco (que puedes obtener de su dmg).

Funcionó perfectamente para mí. Creo que el proceso de crear una biblioteca estática mediante la construcción del proyecto era antiguo (antes de que crearan un marco).

Gracias.

+0

¿Cuáles de ellas son bibliotecas estáticas? Tal vez podrías pegar un enlace y explicar los pasos más detalladamente. –

0

No se olvide de incluir

libstdc++.dylib

en "Enlace binario con Bibliotecas".

+0

¿Algún consejo sobre por qué debería incluirse esta lib? Se trata de PLCrashReport –

Cuestiones relacionadas