2012-10-24 6 views
5

Ho un problema che mi sta uccidendo. Eccolo: ho e app project in xCode che diventa perfetto quando ho provato a fare tutto in xCode UI. Il che intendo costruire, eseguire, testare o qualsiasi altra cosa in tutti i diversi obiettivi che ho (3), 2 dell'App e uno per i test.Il comando di test xcodebuild per l'utilizzo con jenkins non funziona

Il problema si presenta quando ho provato a installare un'integrazione continua nel mio sistema in Jenkins. Ho bisogno di eseguire alcuni comandi nella shell per questo. Comando come questo:

xcodebuild -project MYPROJECT -sdk iphonesimulator -scheme TESTS_SCHEME TEST_AFTER_BUILD=YES 

Ho anche provato con quest'altra che alla fine si fa la stessa:

xcodebuild -project MY_PROJECT -target TEST_TARGET -sdk iphonesimulator -configuration "Debug" 

Poi è quando i problemi camma a fuori, il terminale dice il seguente:

....PrecompiledHeaders/MYLIBRARY-Prefix-hhjuztynfruquodlgqxroyfibfkh/MYLIBRARY-Prefix.pch.d 
clang: error: invalid architecture 'arm' for deployment target '-mios-simulator-version-min=4.3' 
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1 


** BUILD FAILED ** 


The following build commands failed: 
    ProcessPCH /Users/nicoyuste/Library/Developer/Xcode/DerivedData/MY_APP-bxpgsdbefuawmiexyikbtvsatlsf/Build/Intermediates/PrecompiledHeaders/MYLIBRARY-Prefix-hhjuztynfruquodlgqxroyfibfkh/MYLIBRARY-Prefix.pch.pth MYLIBRARY-Prefix.pch normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler 
(1 failure) 

Ive stato alla ricerca in Internet (quasi qui), ma tutto quello che ho trovato con lo stesso problema non ha funzionato per me. La versione xCode è 4.5 e se si fa xcodebuild -version è quello che ottengo così va bene.

Ho anche provato a cambiare i file header e tutto quello che ho trovato in giro ma niente risolve il mio problema ...

qualche suggerimento ...

risposta

1

Sto vedendo persone che si stanno ancora chiedendo questo. Ho postato questa domanda molto tempo fa. Finalmente ho smesso di usare xcodebuild qualche tempo fa. Sto usando xctool ora e funziona molto meglio. Questo strumento è sviluppato da persone di Facebook e funziona molto meglio di xcodebuild.

+0

grazie a Dio per questo link! Ho avuto così tanti problemi con xcodebuild in combinazione con il plugin xcode di bambù. questo è molto meglio, anche se ho bisogno di scrivere il mio script di build. – Heckscheibe

0

Penso che il problema risiede in che il vostro stanno costruendo per il simulatore che specifica braccio come architettura, prova a cambiarlo in i386

0

Ho avuto un problema simile dopo l'aggiornamento a Xcode 4.5 sulla mia macchina di compilazione. Nel mio caso, ho una libreria di terze parti che non può essere costruita per armv7s (ancora) e così, ho impostato l'impostazione di build Architectures su armv7. Funzionava bene per test di unità, build di simulatori e simili all'interno di Xcode. Tuttavia, quando ho eseguito la compilazione della riga di comando, non è riuscito con lo stesso messaggio.

Ho cambiato il mio Architectures in armv7 i386 e ora sembra costruire bene alla riga di comando per il simulatore.

Nonostante la GUI indichi che le architetture di Standard (armv7,armv7s) includono solo quelle due, sono abbastanza sicuro che ci sia un i386 nascosto lì quando si costruisce per il simulatore.

Alla fine, questa impostazione funziona bene ora con Jenkins.

3

Se si utilizza uno script di generazione personalizzata, è possibile passare i386 -arch a xcodebuild

Per esempio:

xcodebuild -project MY_PROJECT -target TEST_TARGET -sdk iphonesimulator -configuration "Debug" -arch i386 

(Scorrere fino alla destra nel codice di esempio sopra. La bandiera rilevante è -arch i386)

Dovrebbe costringerlo a costruire contro i386. Tuttavia, devi assicurarti che i386 sia nelle impostazioni VALID_ARCHS per la destinazione.

+0

Grazie! Finalmente funziona !! –

3

Nel caso in cui qualcuno ricorra nuovamente allo stesso fastidioso problema, condividerò il mio script qui: Ricordarsi di eseguire questo comando nella directory che contiene il file xcodeproj.

xcodebuild \ 
-project "full-path-to-your-xcodeproj-file" \ 
-target YOUR_TARGET \ 
-sdk iphonesimulator6.1 \ 
-arch i386 \ 
-configuration Debug \ 
VALID_ARCHS="armv6 armv7 i386" \ 
ONLY_ACTIVE_ARCH=NO \ 
TARGETED_DEVICE_FAMILY="1" \ 
clean install 

Ho modificato il TARGETED_DEVICE_FAMILY perché ho creato solo per iPhone. Se vuoi creare sia per iPhone che per iPad, elimina questa riga o sostituiscila con TARGETED_DEVICE_FAMILY = "1, 2".

0

ho cercato qui di seguito dei comandi: xcodebuild -arch i386 -SDK iphonesimulator7.1 Ma non è riuscito con errore simile a clang: errore: l'architettura non valido 'braccio' per destinazione di distribuzione '-mios-simulatore-versione-min = 6.0'

Ecco come ho risolto:

xcodebuild -arch i386 VALID_ARCHS = "i386 ARMv7 armv7s" ONLY_ACTIVE_ARCH = NO -SDK iphonesimulator7.1

U bisogno di fare u impostare VALID_ARCHS e ONLY_ACTIVE_ARCH correttamente e sarà lavoro. Puoi anche fare queste impostazioni direttamente su Xcode.

Problemi correlati