2012-09-13 7 views
25

Acabo de recibir este mismo error cuando uso ZBarSDK, una biblioteca de escaneo de barras para iOS. Funciona bien cuando lo cargo en mi dispositivo de desarrollo o lo pruebo en el simulador iOS6. Pero cuando trato de ejecutarlo para Distribución, falla con:Error de Apple Mach-O Linker Error de ZBarSDK al compilar para distribución

(nulo): El archivo es universal (3 sectores) pero no contiene una (n) división de armv7s:/Users/quique123/Documents/iphone apps/ScanThis /ZBarSDK/libzbar.a para la arquitectura armv7s

donde libzbar.a es la biblioteca del sdk.

¿Alguna idea?

+0

Publicé una solución que funcionó bastante bien. Compruébelo aquí http://stackoverflow.com/a/12561312/1693858 – Microns

Respuesta

11

basta con quitar la mala arquitectura de Arquitecturas válidos en Target Ajustes Aguilar y ya está bueno para ir :)

+1

Más adelante, es posible que desee reconstruir el zbar para admitir el arm7s. Este hilo podría ser un buen punto de partida http://sourceforge.net/projects/zbar/forums/forum/1072195/topic/5081620 – Zdenek

+1

Atención: al hacer esto, su aplicación ya no estará disponible para iPhone 5, que se ejecuta en armv7s arquitectura. – syntagma

+0

¿Cómo eliminar? Quiero decir de qué carpeta. Dame algunos pasos –

7

Cuando usted tiene su objetivo seleccionado> Configuración de creación (Todos)> Arquitecturas> Arquitecturas válidos.

Cuando aparezca el error anterior, retire el brazov7s (probablemente ahora dice [armv7 armv7s]) haciendo doble clic en la línea y seleccione armv7s y presione el botón (-).

En mi caso, esto solucionó el error. No estoy seguro si esto tendrá ningún inconvenientes más adelante ..

EDIT: ahora estoy seguro de que esto tiene al menos un inconveniente: el proyecto no es edificable para un iPhone 5. La solución para eso, es volver a compilar el Zbar fuentes, como se ha dicho aquí: ZBar library for iPhone 5(ARMV7s)

+0

Funciona bien. –

16

abrir el código de recompra Zbar código Mercurial

http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/summary

Ir a los enlaces bz2/zip/gz descargar fuente de corriente (en el formato preferido)

http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.tar.bz2 (a partir de esta fecha) http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.zip (a partir de esta fecha) http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.tar.gz (a partir de esta fecha)

Abra la 'iPhone' subdirectorio

Abra la 'zbar.xcodeproj' presentar

en el menú de selección de libzbar del esquema y construir su propia versión binaria en la arquitectura apoyado

Abra la DerivedData para ese proyecto y vaya a construir/Pro conductos/

Buscar en todas las carpetas de libzbar.a

+0

Estoy tratando de usar este consejo, pero parece que no puedo encontrar el archivo libzbar.a después de la compilación. El único archivo libzbar que se genera es un archivo .rc. ¿Algún consejo sobre qué configuración podría haber perdido? –

+1

@nj He editado mi respuesta para guiarlo mejor a través de los pasos finales, espero que eso ayude. – sbonami

+0

Hola Scott, esta solución funcionó para mí. Sin embargo, tengo que usar dos archivos libzbar.a - 1. Para el simulador 2. Para el dispositivo. ¿Hay alguna manera por la cual puedo usar solo un libber.a para ambos? Al compilar libber.a, configuré el dispositivo iOS para el dispositivo y el simulador iOS para el simulador. ¿Estoy haciendo algo mal? –

1

acabo reemplazados en configuración de generación/Arquitecturas válidos: "ARMv7" por 2 filas "ARMv6" y "ARMv7"

(Por lo general utilizado para obtener este error enlazador solamente cuando se envía a iTunes, pero no la depuración en el dispositivo)

0

Basta con retirar los "armv7s", esto funcionará :)

0

Set 'Construir activo Arquitectura Sólo' a SÍ para la liberación. Solucioné mi problema al hacerlo porque estaba enfrentando el mismo problema.

Cuestiones relacionadas