2014-10-25 7 views
24

Che cosa provoca l'erroreTrovato un Mach-O codice di intestazione inattesa: 1.918.975,009 mila in Xcode 6

Found an unexpected Mach-O header code: 1918975009 in xCode 6 

Ho archiviato il mio progetto di inviare come ad hoc di costruzione e si costruisce/link/archives bene ma quando ho 'm nel xCode organizzatore e selezionare Export -> Ad Hoc,

ottengo l'errore

Found an unexpected Mach-O header code: 191897500. 
+0

Questo si verifica anche a causa di qualsiasi impostazione di Mach-O impostata su "Statico" nell'impostazione di generazione. –

+0

Stai collegando il tuo progetto a qualche obiettivo iOS Universal Framework? –

risposta

29

ho avuto lo stesso errore. Nel mio caso è stato causato da un framework universale che ho copiato accidentalmente nelle risorse dell'app (che non è necessario, dato che i framework vengono uniti direttamente nell'eseguibile principale su iOS AFAIK).

Quindi, selezionare il target, fare clic sulla scheda "Fasi di creazione" e consultare l'elenco "Copy Bundle Resources" per vedere se si copia una libreria o un framework che contiene architetture desktop (i386 o x86_64).

Molto probabilmente, copiare un file di questo tipo è sbagliato, ma se per qualche motivo è necessario, apparentemente può contenere solo architetture compatibili con iOS.

+0

@rtvanals risolve il problema? –

+0

@YohanesKhosiawan 许先汉 Sì. Stavo usando la versione sbagliata di un framework nel mio progetto. Una volta passato alla versione non desktop, il problema è stato risolto. – rtvanals

+1

Si verifica anche a causa di qualsiasi impostazione di Mach-O impostata su "Statico" nelle impostazioni di costruzione. –

3

Ho riscontrato lo stesso errore e non sono stato in grado di rintracciarlo in libreria/framework nelle risorse del pacchetto di copia o in una versione errata di una libreria.

Per aggirare il problema, ho trovato che posso fare una build di esportazione dalla riga di comando e sembra funzionare:

xcodebuild -exportArchive -exportFormat ipa \ 
-archivePath /path/to/app.xcarchive/ \ 
-exportPath /path/to/app.ipa \ 
-exportProvisioningProfile "Name of provisioning profile" 

Qui "Nome del profilo di fornitura" è il nome del profilo di provisioning come appare in Xcode (non il percorso del profilo)

+0

funziona per me, ma perché? non capisco questo metodo Se condividi il testflight, o, soprattutto, se viene inviato ad appStore. Quali sono i rischi? Funziona normalmente? – jose920405

0

ho appena incontrato questo problema come bene, e sono stato in grado di risolverlo ...

nel mio caso, avevo creato un nuovo obiettivo duplicando uno esistente. Avevo cambiato il nome da "MyApp-dev copy" a "MyApp-test", tuttavia, ho dimenticato una cosa ... Quando si crea un nuovo target, viene creato anche un nuovo file .plist. Ho dimenticato di rinominare quel file e quindi ricollegarlo al mio target appena creato.

Una volta che l'ho fatto, il problema è andato via. Inizialmente avevo letto degli obiettivi a: http://www.raywenderlich.com/68613/create-paid-lite-version-iphone-app e tornare indietro da quella pagina mi ha aiutato a risolvere il problema.

31

Nel mio caso questo problema ("trovato un codice di intestazione mach-o 0x72613c21 inaspettato") è apparso dopo aver installato Crashlytics, Fabric.

In qualche modo i baccelli sembravano diventare un binario incorporato. Così ho dovuto rimuoverlo, pod installazione ancora una volta, e il problema è scomparso.

Remove pods from embedded binaries

+0

Questo era per me! Grazie mille per aver postato questo – Aron

+0

Grande! Funziona come incantesimo nel mio caso (installazione in tessuto dal pod) –

+0

+ Ottimo! Funziona come incantesimo nel mio caso (installazione in tessuto dal pod) – Alper

0

problema risolto nel mio caso

fasi di creazione -> Copia Bundle risorse per un quadro o altro binario che shoundn't lì

elimino TwitterKit e DigitKit binario.

Modifica: quando elimino questo file binario dalle risorse del pacchetto di copia, il progetto può essere creato, archiviato, trasferito alla convalida e inviato anche all'App Store. Ma quando eseguo il progetto non funziona. Quindi, se cancello da Copy Bundle Resources e aggiungo a Link Binary With Library sezioni (scegliamo "Aggiungi altro" e poi premiamo cmd + shift + g combinazione per andare dove il tuo bundle o binario) è risolto.

2

Vai a BUILD FASES -> COPY BUNDLE RESOURCES, troverai alcuni framework. Rimuovi da questa sezione e aggiungilo a LINK BINARY WITH LIBRARIES. Funzionerà ..

1

a volte, si dovrebbe cercare Build Phases - Embed Pods Frameworks. e trova il file della shell. per esempio.

Build Phases

e aperto Pods-midea-common-adddevice_Example-frameworks.sh vedere se questo file è un problema.

0

Per aggiungere fabric o crashlytics nel progetto, quando si trascina o si aggiungono framework alla cartella del progetto o a Xcode, mantenere deselezionata la casella "copia elementi se necessario". enter image description here

Problemi correlati