2014-05-15 10 views
6

Ho un progetto Xcode che contiene diversi sottoprogetti (progetti di framework che compilano come file lib) come parte del progetto principale. Il progetto compila/compila correttamente in Xcode (crea i sottoprogetti correttamente dalla parte inferiore dell'albero gerarchico fino al progetto principale dell'app).Xcode: Come creare xcodebuild per costruire un progetto che contiene sottoprogetti

Attualmente sto provando a impostare il progetto per l'integrazione continua e quando provo a costruire dalla riga di comando utilizzando xcodebuild ... la compilazione fallisce a causa del mancato rilevamento dei file .a che dovrebbero essere stati creati prima del progetto principale.

È possibile creare autonomamente ciascuno dei file lib dalla linea cmd, ma l'intero progetto consolidato non riesce. Anche se ho le dipendenze gestite correttamente nello schema di destinazione e se specificherò il target o lo schema quando uso xcodebuild, non costruirò ancora i sottoprogetti.

C'è un modo per fare in modo che xcodebuild costruisca i sottoprogetti e poi il progetto principale come fa nell'IDE Xcode? In caso contrario, funzionerebbe se convertissi l'intero progetto in un'area di lavoro?

Qualsiasi aiuto o suggerimento sarebbe molto apprezzato. Sto eseguendo Xcode 5.1.1 su Mavericks.

+0

A volte le configurazioni di build 'Release' e' Debug' hanno impostazioni diverse. Puoi provare a utilizzare l'opzione xcodebuild '-configuration Debug'. Questo _should_ costruisce allo stesso modo di Xcode 5.1 se avessi premuto il pulsante Esegui. –

+0

Inoltre, dai un'occhiata alle domande "Correlate" nella barra laterale destra. –

risposta

2

È necessario utilizzare uno spazio di lavoro per creare più progetti. Inoltre, poiché ti stai spostando su un server CI, assicurati di condividere i tuoi schemi.

+0

Grazie, Sylvanaar, mi hai indicato nella giusta direzione. – SeaWolf

8

La soluzione era semplice ... utilizzando il "-scheme" bandiera invece di "-target" ha permesso al progetto di costruire in modo corretto (tutti i sotto-progetti/quadri e poi bersaglio App)

riuscita:

xcodebuild -project MyProject.xcodeproj -target MyProject -sdk "iphoneos" -configuration “Build” archive OBJROOT=../../build_iOS/Obj.root SYMROOT=../../build_iOS/Sym.root 

COSTRUITO come previsto:

xcodebuild -project MyProject.xcodeproj -scheme MyProject -sdk "iphoneos" -configuration “Build” archive OBJROOT=../../build_iOS/Obj.root SYMROOT=../../build_iOS/Sym.root 

non c'era alcun bisogno di convertire il progetto per uno spazio di lavoro.

+2

Ho anche scoperto che l'utilizzo di percorsi di file completi per la proiezione, lo schema, ecc. Fa una grande differenza. Spesso Xcodebuild si lamenterà del fatto che non riesce a trovare il file anche se il tuo terminale lo sta osservando ... un percorso completo lo risolve. – SeaWolf

Problemi correlati