Pytanie OCUnit testy do istniejącego projektu iOS. "Ld: nie znaleziono pliku"


Obserwuję ten wpis na blogu: Dodawanie testów jednostkowych do istniejącego projektu.

Dostaję ten błąd jednak:

ld: plik nie znaleziony:   Build / Products / Debug-iphoneos / MyApp.app / MyApp   Dowództwo   /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang   nie powiodło się z kodem zakończenia 1

Mam moje właściwości celu testowego,

Ładowarka pakietów = $ (BUILT_PRODUCTS_DIR) /MyApp.app/MyApp

Host testowy = $ (BUNDLE_LOADER)

(które oba utożsamiają: build / Debug-iphoneos / MyApp.app / MyApp)

Domyślam się, że te zmienne nie wskazują tej samej lokalizacji co kompilator. "build / Debug-iphoneos / ..." vs "Build / Products / Debug-iphoneos / ..."

Mogę być całkowicie błędny w tym przypuszczeniu, ale czy tak, czy ktoś wie, co powoduje ten błąd lub jak mogę naprawić te zmienne środowiskowe?

Dzięki za pomoc,

Sam


18
2018-03-05 22:59


pochodzenie


Może masz system plików z rozróżnianiem wielkich i małych liter na liście? Widziałem to już wcześniej. - fisk


Odpowiedzi:


Wkopiuj do ~ / Library / Developer / Xcode / DerivedData, do swojego projektu. Stamtąd postępuj zgodnie ze ścieżką modułu ładowania. Zobacz, co naprawdę tam jest.

Teraz spójrz na swoją Info.plist (lub ustawienia Info celu) i poszukaj "Plik wykonywalny" lub CFBundleExecutable. Jeśli to jest ${EXECUTABLE_NAME}, sprawdź ustawienie "Nazwa produktu" Twojego celu.


18
2018-03-09 01:50



Kolejną rzeczą do sprawdzenia jest Bundle Loader ustawienia twojego celu testowego jednostki. To oznaczało ścieżkę do pliku wykonywalnego aplikacji, w większości zakodowanego na podstawie projektu Xcode 4. (Od tego czasu zmieniłem nazwę produktu w celu aplikacji, a docelowy test jednostki nie miał o tym pojęcia.) - zekel
Miałem ten sam problem i to rozwiązano. Problem polega na tym, że zmieniłem nazwę głównego celu, a następnie Xcode zgubiłem. - Giovanni
CMD + Shift + K do "czystego projektu" nigdy nikomu nie zaszkodzi ... - zeroasterisk
Czyszczenie lub usuwanie wyprowadzonych danych nie działało. Zmieniłem nazwę produktu docelowego na to, co powinno być i jak działa. dzięki! - RyanG


Wpadłem na ten sam problem - nie miało to sensu, ponieważ faktycznie istniała ścieżka do pliku wykonywalnego. Przyjrzenie się komendzie kompilacji ujawniło, że na ścieżce programu ładującego było dodatkowe miejsce, co stanowiło problem.


6
2017-08-30 22:55



Dzięki! Znalezienie tego właśnie uratowało mnie trochę czasu. Prowadził mnie do szału - dostałam plik, którego nie znaleziono wielokrotnie na ładowarce pakietów, która wyraźnie istniała. W edytorze ustawień kompilacji $(BUILT_PRODUCTS_DIR)/FSMTest.app/FSMTest nie jest tym samym, co `$ (BUILT_PRODUCTS_DIR) / FSMTest.app / FSMTest` (tzn. z wcześniej przyjętą przestrzenią). Czy Apple nie mogło zaprojektować okna dialogowego edytora ustawień z odrobiną kontroli? - Cris
W podobnym tonie nie umieszczaj podwójnych cytatów, nawet jeśli masz spacje w nazwie aplikacji. - Daniel Thorpe
Aby było jasne, nie wkładaj każdy cytuje wokół tego. Ani podwójne, ani pojedyncze cytaty nie działały dla mnie, ale żadne cytaty NIE DZIAŁAŁY. - Robert Atkins
Miałem znak nowej linii z pasty do kopiowania. Yikes! To było szalenie pomocne, więc dzięki! - Ben Flynn
@BenFlynn to także moja sprawa, dzięki - Yunus Nedim Mehel


Szukanie "Ścieżek wyszukiwania" w Ustawieniach kompilacji. Prawdopodobnie istnieją nieistniejące ścieżki w "Ścieżkach wyszukiwania ramek" lub innych ścieżkach, takich jak Ścieżki wyszukiwania biblioteki


0
2017-12-17 08:03





Istnieje możliwość zmiany nazwy aplikacji po utworzeniu projektu. Dlatego nazwa twojego projektu i aplikacji jest inna. Na ścieżce użyj nazwy aplikacji, która będzie wyświetlana w sklepie itunes zamiast w nazwie projektu.


0
2018-04-04 12:43





Miałem ten sam problem wcześniej i rozwiązałem ten problem, sprawdzając Ustawienia kompilacji -> Base SDK celu testowego urządzenia i upewnij się, że jest poprawny w zależności od typu projektu (OSX lub iOS).


0
2017-10-31 04:34





W swoim podfile upewnij się, że umieściłeś swoje testy jako cel

wybierz cel "YourAppNameTests" use_frameworks! pod "AFNetworking", "2.6.0" pod 'TYMProgressBarView' koniec

To automatycznie doda Link Binary do Framework Biblioteki

enter image description here


0
2018-06-06 16:41