Xcode 7 'CrashReporter no contiene bitcode' error de enlace

Estoy vinculando directamente PLCrashReporter en mi aplicación iOS sin usar ninguna herramienta externa y ahora cuando trato de comstackrlo en Xcode 7 obtengo un error de enlace:

ld: '… / CrashReporter.framework / CrashReporter (libCrashReporter-iphoneos.a-armv7-master.o)' no contiene bitcode. Debe rebuildlo con el código de bits activado (configuration Xcode ENABLE_BITCODE), get una biblioteca actualizada del proveedor o inhabilitar el código de bits para este objective. para architecture armv7

¿Dónde obtengo el marco actualizado o las fonts para comstackrlos con el código de bits habilitado y eliminar el error sin deshabilitar el código de bits para el proyecto completo?

Terminé abordando esto construyendo PLCrashReporter 1.2.1 desde la fuente. Esta versión es el mínimo que ha tenido las correcciones Xcode 7 y iOS9 combinadas.

La fuente se obtiene de aquí: PLCrashReporter 1.2.1

Descomprima la fuente descargada 1.2.1 en una carpeta.

Extraiga el proyecto Xcode dentro de esa carpeta dentro de Xcode y agregue lo siguiente a la configuration de "Otras banderas C" de la configuration del comstackdor personalizado de la configuration de compilation del proyecto: -fembed-bitcode

A continuación, agregue lo siguiente a la sección Configuración de comstackdor personalizado "Otros indicadores de advertencia" de la configuration de compilation del proyecto: -Wno-error=unused-command-line-argument

Luego cierre el proyecto desde la GUI de Xcode. La configuration personalizada es necesaria porque vamos a build desde la línea de command utilizando xcodebuild para evitar errores de desaprobación del PLCR, y al hacerlo, el valor pnetworkingeterminado es solo -fembed-bitcode-marker cuando construimos un framework de esta manera. Estamos anulando el comportamiento pnetworkingeterminado y necesitamos suprimir la advertencia de parada dura que esto provoca.

Por último, desde un indicador de window de terminal dentro de la carpeta donde se encuentra el file zip de la fuente, incluido el file del proyecto xcode, ejecute lo siguiente:

xcodebuild -configuration Release -target 'Disk Image'

Esto ejecutará la compilation y dejará el marco en ./build/Release/PLCrashReporter-1.2.1/iOS Framework

Ahora, estos pasos producirán un marco habilitado para códigos de bits, pero los informes de fallas de terceros no son compatibles con el código de bits (cuando la App Store vuelve a comstackr, no tiene forma de get el file de símbolos de la compilation sobre la marcha).

Hay 2 opciones
1. Descargue las fonts de PLCrashReporter y compílelo con el código de bits habilitado, y use eso en su proyecto.
2. Deshabilita el código de bits para tu objective
Vaya a la pestaña Configuración de compilation de su destino, busque Enable Bitcode valor establecido de Enable Bitcode en NO.

introduzca la descripción de la imagen aquí

Esto funcionó para mí, para include el marco de trabajo de Rollbar en mi proyecto:

Dentro de mi área de trabajo, primero selecciono mi proyecto del Navegador de proyectos -> el objective de mi proyecto -> Configuración de compilation -> Habilitar Bitcode = NO

introduzca la descripción de la imagen aquí

Luego selecciono los PODS del Navegador de proyectos -> Objetivo de barra de desplazamiento -> Activar código de bits = NO

introduzca la descripción de la imagen aquí

Experimentó el mismo problema. Construí el marco de reportero crash de la fuente usando https://www.plcrashreporter.org/code

  • Ábralo en Xcode
  • Seleccione el objective 'CrashReporter' con la diana roja.
  • Constrúyelo

Luego busque en ~ / Library / Developer / Xcode / DerivedData / CrashReporter-xxxxxxx para get el package .framework

Desafortunadamente, el problema se presentó de nuevo. También cuando bash comstackr nuevamente obtengo:

ld: warning: el file object (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_macosx.a(cf.o)) fue creado para la versión más reciente de OSX (10.6) que ser (10.5) ld: warning: file object (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_macosx.a(arclite.o)) fue creado para la versión más nueva de OSX ( 10.6) que estar vinculado (10.5)

Además, si configuro el código de bits de habilitación en el nivel de proyecto, obtendré un error inmediato: el objective 'CrashReporter-MacOSX-Static' tiene habilitado el código de bits (ENABLE_BITCODE = YES), pero no es compatible con la plataforma 'macosx'

¿Qué debo hacer para producir el framework con bitcode habilitado?