2012-09-13 15 views
25

Ho appena ottenuto questo stesso errore quando si utilizza ZBarSDK, una libreria di scansione delle barre per iOS. Funziona bene quando lo carico sul mio dispositivo di sviluppo o lo collaudo sul simulatore iOS6. Ma quando provo a eseguirlo per Distribution fallisce con:Errore di Apple Mach-O Linker Errore ZBarSDK durante la creazione per la distribuzione

(null): il file è universale (3 sezioni) ma non contiene una sezione (n) armv7s:/Users/quique123/Documents/iphone apps/ScanThis /ZBarSDK/libzbar.a per architecture armv7s

dove libzbar.a è la libreria dal sdk.

Qualche idea?

+0

Ho pubblicato una soluzione che funzionava abbastanza bene. Dai un'occhiata qui http://stackoverflow.com/a/12561312/1693858 – Microns

risposta

11

è sufficiente rimuovere la cattiva architettura Architetture valide in target Aguilar Impostazioni e siete pronti per partire :)

+1

In seguito potresti voler ricostruire lo zbar per supportare gli arm7. Questo thread potrebbe essere un buon punto di partenza http://sourceforge.net/projects/zbar/forums/forum/1072195/topic/5081620 – Zdenek

+1

Attenzione: facendo ciò l'app non sarà più disponibile per iPhone 5, che è in esecuzione su armv7s architettura. – syntagma

+0

Come rimuovere? Voglio dire da quale cartella. Dammi alcuni passaggi –

7

Quando hai il tuo target selezionato> Crea Impostazioni (Tutti)>> Architetture Architetture validi.

Quando si verifica l'errore sopra riportato, rimuovere l'armv7s (probabilmente dice [armv7 armv7s] ora) facendo doppio clic sulla linea e selezionare armv7s e premere il pulsante (-).

Nel mio caso, questo ha risolto l'errore. Non so se questo avrà alcun aspetti negativi più avanti ..

EDIT: ora sono sicuro che questo ha almeno un aspetto negativo: Il progetto non è edificabile per un iPhone 5. La soluzione per questo, sta ricompilando lo ZBar fonti, come dichiarato qui: ZBar library for iPhone 5(ARMV7s)

+0

Funziona bene. –

16

aprire il codice di ZBar codice di Mercurial repo

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

Vai alla pagina del bz2/zip/GZ scaricare generatore di corrente (in formato preferito)

http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.tar.bz2 (a partire da questa data post) http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.zip (a partire da questa data post) http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.tar.gz (a partire da questa data post)

Aprire il 'iphone' sottodirectory

Aprire il 'zbar.xcodeproj' presentare

nel menu di selezione libzbar del regime e costruire la propria versione binaria in architettura supportata

Aprire il DerivedData per il progetto e passare alla build/Pro condotti/

Cerca in tutte le cartelle per libzbar.a

+0

Sto provando ad usare questo consiglio, ma non riesco a trovare il file libzbar.a dopo la compilazione. L'unico file libzbar che viene generato è un file .rc. Qualche consiglio su quali impostazioni potrei aver perso? –

+1

@nj ho modificato la mia risposta per guidarti meglio nei passaggi finali, spero che sia di aiuto. – sbonami

+0

Ciao Scott, questa soluzione ha funzionato per me. Tuttavia, devo usare due file libzbar.a - 1. Per il simulatore 2. Per dispositivo. C'è un modo in cui posso usare solo un libber.a per entrambi. Durante la compilazione di libber.a ho impostato il dispositivo iOS per il simulatore di dispositivo e iOS per il simulatore. Sto facendo qualcosa di sbagliato? –

1

Ho appena sostituito in Impostazioni build/Architetture validi: "ARMv7" per 2 file "ARMv6" e "ARMv7"

(Di solito io usato per ottenere solo questo errore linker al momento della presentazione a iTunes, ma non il debug nel dispositivo)

0

Basta rimuovere il "armv7s", questo funzionerà :)

0

Set 'Build architettura attivo solo' su YES per il rilascio. Ho risolto il mio problema facendo ciò perché ero di fronte a questo stesso problema.

Problemi correlati