2012-03-05 11 views
18

Ho seguito questo post del blog: Adding unit tests to existing project.OCUnita i test per il progetto iOS esistente. "Ld: File non trovato"

sto ottenendo questo errore comunque:

LD: File non trovato: build/Prodotti/Debug- iPhoneOS/MyApp.app/MyApp comando /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang non riuscita con codice di uscita 1

ho le mie proprietà bersaglio di prova,

Bundle Loader = $ (BUILT_PRODUCTS_DIR) /MyApp.app/MyApp

Prova host = $ (BUNDLE_LOADER)

(che sia equivalere a: costruire/Debug-iPhoneOS/MyApp. app/MyApp)

La mia ipotesi è che quelle variabili non puntino alla stessa posizione del compilatore. "build/Debug-iphoneos/..." vs "Build/Products/Debug-iphoneos/..."

Potrei sbagliarmi totalmente su tale ipotesi, ma in entrambi i casi, qualcuno sa che cosa sta causando questo errore o come risolverei queste variabili d'ambiente?

Grazie per qualsiasi aiuto,

Sam

+1

Forse avere un file system sensibile caso e hanno il caso sbagliato su una lettera? L'ho visto prima. – fisk

risposta

18

Dig in ~/Library/Developer/Xcode/DerivedData, giù nel progetto. Da lì, segui il percorso del Bundle Loader. Guarda cosa c'è in realtà lì.

Ora guarda il tuo Info.plist (o le impostazioni Info del tuo target) e cerca "File eseguibile" o CFBundleExecutable. Se è ${EXECUTABLE_NAME}, controlla l'impostazione "Nome prodotto" del tuo target.

+5

Un'altra cosa da verificare è le impostazioni di "Bundle Loader" per il target di test dell'unità. Quello aveva il percorso dell'eseguibile dell'app per lo più codificato da quando è stato creato il progetto Xcode 4. (Da allora avevo cambiato il nome del prodotto nel target dell'app e il target del test unitario non ne aveva idea.) – zekel

+0

Ho avuto lo stesso problema e questo è stato risolto. Il problema è che avevo rinominato l'obiettivo principale, e quindi Xcode si è perso. – Giovanni

+0

CMD + Maiusc + K per "ripulire il progetto" non fa mai male a nessuno ... – zeroasterisk

6

Mi sono imbattuto nello stesso problema: non aveva senso perché il percorso che stava utilizzando nell'eseguibile esisteva realmente. Osservando da vicino il comando di compilazione ha rivelato che c'era uno spazio in più sul percorso del caricatore che rappresentava il problema.

+5

Grazie! Trovare questo mi ha appena salvato un po 'di tempo. Mi stava facendo impazzire: si trattava di trovare un file non trovato più volte su un caricatore di pacchetti che chiaramente esisteva. Nell'editor delle impostazioni di generazione, $ (BUILT_PRODUCTS_DIR)/FSMTest.app/FSMTest' non è uguale a '$ (BUILT_PRODUCTS_DIR)/FSMTest.app/FSMTest' (cioè con uno spazio anteposto). Potrebbe Apple non aver progettato il dialogo dell'editor delle impostazioni con un minimo di controllo? – Cris

+1

Su una nota simile, non mettere le virgolette su questo neanche, anche se hai spazi nel nome della tua app. –

+1

Per essere chiari, non mettere * qualsiasi * virgolette intorno a questo. Né le doppie né le virgolette singole hanno funzionato per me, ma nessuna citazione DID funziona. –

0

Ricerca di "Percorsi di ricerca" all'interno delle impostazioni di compilazione. Probabilmente esistono percorsi inesistenti in "Percorsi di ricerca quadro" o altri percorsi come Percorsi di ricerca libreria

0

C'è la possibilità che tu abbia cambiato il nome dell'applicazione dopo aver creato il tuo progetto. Quindi il nome del tuo progetto e dell'applicazione sono diversi. Nel percorso, utilizzare il nome dell'applicazione come apparirebbe su iTunes Store invece del nome del progetto.

0

Ho avuto lo stesso problema in precedenza e ho risolto questo problema controllando le impostazioni di generazione -> SDK di base del mio target di test dell'unità e assicurandomi che fosse corretto in base al tipo di progetto (OSX o iOS).

0

Nella tua podfile assicurarsi di aver incluso i test come un bersaglio

target 'YourAppNameTests' fare use_frameworks! pod 'AFNetworking', '2.6.0' pod 'TYMProgressBarView' fine

Questo aggiungerà automaticamente link binario con le librerie quadro

enter image description here

Problemi correlati