2015-03-01 4 views
6

Sto cercando di far funzionare un semplice progetto Xcode con TeamCity. Sono riuscito a fare senza test.TeamCity + Xcode 6 - Esegui l'azione di test fallita

Ho un'applicazione di visualizzazione singola di base in Swift con un'etichetta sullo schermo. Sia TeamCity (9.0.2) che Xcode (6.1.1) funzionano sulla stessa macchina (Mac mini) con un OS X (10.10.2) Server (4.0.3) installato su di esso. Ho creato un repository Git con Server e aggiunto come remoto al mio progetto Xcode di esempio. Dopodiché, ho creato con successo un progetto TeamCity funzionante e costruito.

Tuttavia, quando provo a verificare i test di esecuzione , la compilazione fallirà indipendentemente da ciò che faccio.

configurazione (immagine set) https://dl.dropboxusercontent.com/u/55101816/Screen%20Shot%202015-03-01%20at%2002.45.48.png

Messaggio di errore (ei messaggi a destra prima che)

[02:31:48][FirstTeamCityProjectTests (BUILD)] Touch 
[02:31:48][Touch] Touch build/Debug-iphoneos/FirstTeamCityProjectTests.xctest 
[02:31:48][Touch]  cd /Library/TeamCity/buildAgent/work/55b27ad210b8fe77 
[02:31:48][Touch]  export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/> ontents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Server.app/Contents/ServerRoot/usr/bin:/Applications/Server.app/Contents/ServerRoot/usr/sbin" 
[02:31:48][Touch]  /usr/bin/touch -c /Library/TeamCity/buildAgent/work/55b27ad210b8fe77/build/Debug-iphoneos/FirstTeamCityProjectTests.xctest 
[02:31:48][FirstTeamCityProjectTests (BUILD)] CodeSign 
[02:31:48][CodeSign] CodeSign build/Debug-iphoneos/FirstTeamCityProjectTests.xctest 
[02:31:48][CodeSign]  cd /Library/TeamCity/buildAgent/work/55b27ad210b8fe77 
[02:31:48][CodeSign]  export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate 
[02:31:48][CodeSign]  export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/ Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Server.app/Contents/ServerRoot/usr/bin:/Applications/Server.app/Contents/ServerRoot/usr/sbin" 
[02:31:48][CodeSign] Signing Identity:  "iPhone Developer: *" 
[02:31:48][CodeSign]  /usr/bin/codesign --force --sign * /Library/TeamCity/buildAgent/work/55b27ad210b8fe77/build/Debug-iphoneos/FirstTeamCityProjectTests.xctest 
[02:31:48][Step 1/1] ** BUILD SUCCEEDED ** 
[02:31:48][Step 1/1] xcodebuild: error: Failed to build workspace FirstTeamCityProject with scheme FirstTeamCityProject. 
[02:31:48][Step 1/1] Reason: Xcode cannot run using the selected device. 
[02:31:48][Step 1/1] Process exited with code 70 
[02:31:48][Step 1/1] Step Xcode Project failed 

problema principale che ho trovato con questo codice di errore e CI che stavano cercando con ssh e là erano nessuna sessione GUI. Attualmente ho una sessione GUI valida con lo stesso utente che usa, quindi non dovrebbe essere un problema.

Il comando xcodebuild è il seguente.

/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace FirstTeamCityProject.xcodeproj/project.xcworkspace -scheme FirstTeamCityProject SYMROOT=/Library/TeamCity/buildAgent/work/55b27ad210b8fe77/build OBJROOT=/Library/TeamCity/buildAgent/work/55b27ad210b8fe77/build clean build test 

Quello che manca qui (suppongo) è una o più destinazioni. Ho eseguito il seguente comando e ha funzionato bene. (Aperto il simulatore, poi è uscito con successo.)

xcodebuild test -project FirstTeamCityProject.xcodeproj -scheme FirstTeamCityProject -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' 

mi sembra di essere solo con questo problema, non ho trovato tutti gli altri successi importanti. Guardando questo tutorial: http://pivotallabs.com/ios-continuous-deployment-teamcity-hockeyapp/, il mio problema non dovrebbe essere affatto presente.

MODIFICA: La destinazione manca davvero, ma non capisco perché. Inoltre, se provo ad aggiungerlo manualmente, la compilazione fallisce. (Ho il sospetto che l'ordine dei parametri di cose, ma come potrei aggiungere questa destinazione altrove in TeamCity.)

[01:48:12][Step 1/1] Building project: /Library/TeamCity/buildAgent/work/55b27ad210b8fe77/FirstTeamCityProject.xcodeproj 
[01:48:12][Step 1/1] Using Xcode 6.1.1 
[01:48:12][Step 1/1] Starting: /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace FirstTeamCityProject.xcodeproj/project.xcworkspace -scheme FirstTeamCityProject SYMROOT=/Library/TeamCity/buildAgent/work/55b27ad210b8fe77/build OBJROOT=/Library/TeamCity/buildAgent/work/55b27ad210b8fe77/build clean build test -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' 
[01:48:12][Step 1/1] in directory: /Library/TeamCity/buildAgent/work/55b27ad210b8fe77 
[01:48:12][Step 1/1] xcodebuild: error: option 'Destination' requires at least one parameter of the form 'key=value' 

Apprezzo ogni idea che hai! Grazie in anticipo!

+1

Sono confuso. Sembra che tu abbia risposto alla tua domanda nella tua domanda: "Quello che manca qui ... è una o più destinazioni.Ho eseguito il seguente comando e ha funzionato bene." ... Allora, qual è la domanda? –

+0

Non sono così familiare con TeamCity, da quello che hai scritto sembra decisamente che manchi il flag -destination. Se questo ti aiuta, ecco il codice del passo di costruzione Xcode di Bitrise.io [disclaimer: CTO] che può eseguire anche test unitari: https://github.com/bitrise-io/steps-xcode-builder/blob/master/step.sh - puoi provare su http://www.bitrise.io/, abbiamo un piano di abbonamento sempre gratuito. –

+0

@JeremyHuddlestonSequoia Scusa per la confusione, ho appena aggiornato la mia domanda. – farkasseb

risposta

3

Vedere How to start TeamCity Build Agent on Mac OS on a user logon per renderlo in grado di eseguire le applicazioni GUI (vedere anche la nota per il sistema operativo Yosemite).

+0

Ho provato la soluzione alternativa suggerita (e molte varianti di esso), ho avviato direttamente il buildAgent (e tutto). Lo stesso errore. – farkasseb

+0

Anche se ho avuto un tipo di problema diverso, questo ha risolto il mio problema. Fondamentalmente l'aggiornamento a OSX 10.10 sul nostro buildagent TeamCity ha avuto l'effetto che buildAgent non poteva interagire con l'interfaccia utente e quindi non eseguire i nostri test unitari. La soluzione suggerita per Yosemity nel link sopra ha risolto il problema :) –

+0

@farkasseb Abbiamo trovato un bug in TeamCity prima della 9.0.4. Abbiamo aggiornato la sezione [Avvio automatico sotto MacOSx] (https://confluence.jetbrains.com/display/TCD9/Setting+up+and+Running+Additional+Build+Agents#SettingupandRunningAdditionalBuildAgents-UsingLaunchDaemonsStartupFilesonMacOSx) nella documentazione. Si prega di provare la soluzione suggerita. –

3

nella squadra della città, quando si configura passaggio di generazione del 'Xcode Project', aggiungere il parametro di destinazione nella casella ingresso 'Ulteriori parametri della riga di comando' in questo modo:

"-destination" "platform=iOS Simulator,name=iPhone 6,OS=8.4" 

prestare attenzione alla virgolette

che ha risolto il problema per me (l'ho controllato su TeamCity Professional 9.1.5 (build 37377)).

+0

Ha lavorato per me, grazie mille! –

+0

Lavorato anche qui - v 2017.1.3 (build 46961) – alparsons