No se puede comstackr plcrashreporter en Xcode 4

Puedo usar el marco pnetworkingefinido proporcionado en la página del proyecto plcrashreporter cuando compilo para el dispositivo, pero no para el simulador. Tengo el mismo problema descrito aquí .


Supongo que el marco pnetworkingefinido no es compatible con la architecture del simulador, por lo que descargué la fuente plcrashreporter. Abrí el proyecto Xcode y seleccioné el CrashReporter-iOS-Simulator > iPhone 4.3 Simulator . Cuando trato de build el proyecto, aparece este error:

  libtool: carácter de opción desconocido `D 'en: -D__IPHONE_OS_VERSION_MIN_REQUIRED = 30000 

Recibo el mismo error cuando bash comstackr la mayoría de los otros objectives (como para el dispositivo).


Mi siguiente paso fue intentar agregar los files de origen a mi proyecto. Ya no tengo el problema antes mencionado; sin embargo, obtengo este error cuando trato de comstackr:

  error fatal: file 'crash_report.pb-ch' no encontrado [2]
  #import "crash_report.pb-ch"
          ^
 1 error generado.
 Comando el clang fallado con el código de salida 1 

El file crash_report.pb-ch que se menciona en el post de error simplemente no existe; He buscado en el tree fuente de plcrashreporter y en Internet. Por lo tanto, debo asumir que este file se debe generar de alguna manera, pero no puedo entender cómo.

(Al comentar la línea en PLCrashReport.m en el que crash_report.pb-ch se incluye, se obtienen numerosos otros errores de compilation).

Tiene razón en que el file no existe normalmente, ni existe crash_report.pb-cc , que será su próximo error después de éste.

Los files crash_report.pb.h y crash_report.pb.c se generan en time de compilation mediante una regla de compilation. Debe agregar un script personalizado a su process de compilation para crearlos.

Primero, asegúrese de tener protoc-c en la carpeta plcrashreporter de su proyecto ( plcrashreporter-1.0/Dependencies/protobuf-2.0.3/bin/protoc-c ). Lo enterraron profundamente. Esto es lo que se ejecutará su script.

Luego encuentre su file crash_report.proto . Esta es la input principal que protoc-c usará para crear sus files perdidos. Puede tomar este directory y colocarlo manualmente en su script, O puede hacer una regla para ejecutar el script en cada file *.proto . Hago esto último

Luego edite sus reglas de compilation para include una secuencia de commands que ejecuta protoc-c con la bandera --c_out="${DERIVED_FILES_DIR}" y su file crash_report.proto como dos inputs, esto producirá crash_report.pb-ch y crash_report.pb-cc en el mismo directory donde se encuentra su file crash_report.proto, que ya debería estar accesible en su proyecto.

Las reglas de compilation en Xcode 4 (y más arriba) están bajo la pestaña de reglas de compilation del objective del proyecto. Agregue una regla de compilation antes de todas sus otras reglas de compilation. Esto es lo que se ve en la mina en Xcode:

Esto es lo que se ve en la mina en Xcode.

Probablemente tendrás que jugar con el directory