Recientemente descargué Xcode 7 beta, y Xcode se queja de que algunas de mis bibliotecas C no se compilan en BitCode. ¿Cómo haría para decirle a Clang que produzca BitCode que sea compatible con iOS? He visto respuestas similares en stackoverflow, pero no sé si se aplican a la producción de bibliotecas BitCode para iOS.
Editar:
Estoy usando la configuración correcta, -fembed-bitcode, pero cuando intento archivar, aparece el error: ld: advertencia: ignorar el archivo XXXX/XXXX, el archivo se creó para el archivo que no es la arquitectura que se vincula (arm64). Cuando uso -fembed-bitcode-marker, puedo archivar, pero aparece el error: no se pudo generar el paquete de código de bits completo porque XX/XX se creó solo con el marcador de código de bits. La biblioteca debe generarse a partir de la compilación del archivo Xcode con bitcode habilitado.
¿Alguna idea sobre lo que está yendo mal? La biblioteca se está compilando correctamente, pero no me permite archivar. Creé una función de agregar simple y la convertí en una biblioteca, y obtengo los mismos síntomas, por lo que no es la biblioteca que estoy compilando.
Edición 2: debe compilar las versiones arm64 y armv7 usando bitcode y lipo juntas. El uso de código de bits no elimina la necesidad de una gran biblioteca al archivar. fuente: Enlace
Al crear bibliotecas estáticas, debe agregar lo siguiente para la generación de códigos de bits:
-fembed-bitcodepara una biblioteca dinámica, necesita vincularse adicionalmente con
-fembed-bitcodeNota: este comando solo está disponible con Xcode7+
Con respecto a la respuesta aceptada de usar -fembed-bitcode-marker
Debe tener en cuenta que una compilación normal con la opción -fembed-bitcode-marker producirá secciones de código de bits incrustadas de tamaño mínimo sin ningún contenido real. Esto se hace como una forma de probar los aspectos relacionados con el código de bits de su compilación sin ralentizar el proceso de compilación. El contenido de código de bits real se incluye cuando realiza una compilación de archivo.
Bastón de Apple de bwilson. https://forums.developer.apple.com/thread/3971#12225
Para ser más especifico:
-fembed-bitcode-marker simplemente marca dónde estaría el código de bits en el binario después de la compilación de un archivo.-fembed-bitcode en realidad genera e incrusta el código de bits completo, por lo que esto es lo que necesita usar para crear bibliotecas estáticas.-fembed-bitcode-marker para compilaciones regulares (como implementar en el simulador)-fembed-bitcode para compilaciones de archivo / compilaciones de producción (ya que esto solo es necesario para Apple).Vaya a Configuración de compilación. Busque "marcas de compilador personalizadas ".
Agregue -fembed-bitcode a Otras banderas C. Esto asegurará que la lib se construya con compatibilidad de código de bits en el momento de la compilación. Hice esto para iOS de 64 bits y 32 bits, y los fusioné en uno. Funciona de maravilla.
Como ustedes tuvieron consultas, aquí hay una captura de pantalla de la configuración: La configuración es la misma para el objetivo del proyecto y el objetivo del SDK.
Bitcode lib no funcionará con Xcode 6.
Si aún tiene problemas después de agregar el -fembed-bitcode a las banderas de Otros C, busque "Habilitar código de bits" en "Opciones de compilación" y configúrelo en No. Esto le permitirá archivar correctamente.