2010-07-28 14 views
41

Mam problem, który pojawił się, gdy uaktualniłem moją wersję xcode. Używam testów jednostkowych, a teraz, gdy próbuję zaimportować SenTestingKit (#import <SenTestingKit/SenTestingKit.h>), pojawia się ten błąd: SenTestingKit/SenTestingKit.h: No such file or directory.Xcode - SenTestingKit nie znaleziono

Szukałem w ustawieniach budować, i mam następujące opcje konfiguracji:

== Linking == 
Other Linker Flags: -framework Foundation -framework SenTestingKit -framework UIKit 
Prebinding: No 

== Search Paths == 
Debug Configutation: "/iphonesimulator4.0/Developer/Library/Frameworks" "/Xcode4/Library/Frameworks" 

Sprawdziłem /Xcode4/Library/Frameworks, a katalog SenTestingKit.framework/ jest tam.

Więc czego mi brakuje?

+1

Sam, wszystkie oprogramowanie Apple w wersji wstępnej jest w pakiecie SDK, więc nie będziesz (czytaj: prawdopodobnie nie powinien) móc dyskutować o tym poza forum programistów Apple. Opublikuj tam, zgłoś błąd. – typeoneerror

+5

Typeoneerror, masz na myśli NDA. To jest SDK. –

+0

Tego typu pytania są lepiej zadawane na forach programistów Apple, na których masz większe szanse na odpowiedź. – Abizern

Odpowiedz

0

Możesz chcieć sprawdzić, że Xcode jest sprawdzanie ramowa ścieżek wyszukiwania: Framework Search Paths

+0

Tak. Dodałem $ {DEVELOPER_LIBRARY_DIR}/Frameworks do Path Search Paths i to naprawiło. –

1

Dla moich ramowych ścieżek wyszukiwania, mam wyraźnie dodaje /$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk/Developer/Library/Frameworks. Kompiluje poprawnie dla symulatora i urządzenia.

Jestem pewien, że istnieją zmienne środowiskowe, które działają w wersjach SDK, więc zaktualizuję odpowiedź, jeśli je znajdę.

screenshot

+0

To rozwiązało problem dla mnie. Oznacza to, że dodałem framework z tej ścieżki, a Xcode 4 automatycznie zaktualizował później Framework SearchPaths. Początkowo próbowałem użyć SenTestingKit.framework w $ (DEVELOPER_DIR)/Library/Frameworks /, ale to nie zadziałało. –

57

miałem ten sam problem przy tworzeniu nowego przypadek testowy w Xcode. Było to jednak spowodowane głupotą polegającą na wybraniu niewłaściwego celu podczas tworzenia przypadku testowego.

Przy użyciu opcji "Plik nowy ...", dołączono przypadek testowy i skompilowano go z docelowymi ustawieniami aplikacji zamiast docelową wielkością liter. Sprawdzanie zakładki Fazy budowania i przeglądanie ujawnienia "Źródła kompilacji" ujawniło mój szczególny problem.

+2

Dziękuję, że całkowicie poradziłeś sobie! –

+0

Tak to zadziałało. Zrobiłem to wcześniej, ale myślę, że AppCode zresetować go z powrotem. Jeśli korzystasz z podwójnej kontroli AppCode. – vaughan

+0

Chciałbym móc dwukrotnie głosować: – DCMaxxx

6

miałem ten problem, ponieważ nie jest to przestrzeń w instalacji Xcode: /Xcode 4.0.2

Naprawiłem go dodając "${DEVELOPER_LIBRARY_DIR}/Frameworks" (z cudzysłowów) do moich ramowych ścieżek wyszukiwania.

+0

W moim przypadku musiałem również dodać cytaty dotyczące '$ (SDKROOT)/Developer/Library/Frameworks'. – azdev

+0

Lub po prostu użyj '$ (DEVELOPER_FRAMEWORKS_DIR_QUOTED)';) – Pascal

18

Miałem ten problem po uaktualnieniu do kodu Xcode 4.3. Nic nie działało, dopóki nie natknąłem się na this post. Miałem już te same ścieżki wyszukiwania, ale zmiana zamówienia rozwiązała problem.

Tak więc z tego artykułu potrzebne są dwie następujące wartości w ścieżkach wyszukiwania ramowego: w tej kolejności.

$(SDKROOT)/Developer/Library/Frameworks 
$(DEVELOPER_LIBRARY_DIR)/Frameworks 
+0

Dzieje się tak dlatego, że (SDKROOT)/Developer/Library/Frameworks jest uzbrojony, $ (DEVELOPER_LIBRARY_DIR)/Frameworks to intel – valexa

+0

@velexa - Więc twoim zdaniem to drugie jest niepotrzebne lub...? W każdym razie, przekazanie informacji, że mam ten problem i rozwiązanie na tej tablicy, wydawało się wok. – DougW

+0

Właśnie wyjaśniam, dlaczego twoje rozwiązanie działa, tak, dodawanie ścieżek do kompilacji frameworków intel do celu ramienia jest niepotrzebne – valexa

1

Aby to wyjaśnić raz na zawsze, istnieją trzy SenTestingKit ramy w Xcode SDK, jeden dla OS X jest dla iOS i jeden dla symulatora.

Gdybyś prowadził „lipo -info” na nich byś widział, że

Architektury w pliku tłuszcz: /Developer/Library/Frameworks/SenTestingKit.framework/Versions/A/SenTestingKit są: x86_64 i386

architektury w pliku tłuszcz: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit jest architektura: ARMv7

beztłuszczowy file: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/Developer/Library/Frameworks/SenTestin gKit.framework/SenTestingKit jest architekturą: i386

+0

Nadal nie usuwa tego. Kiedy wybierzesz opcję dodaj framework w xcode, daje to tylko opcję "SenTestingKit", ale nie pozwala ci wybrać konkretnej opcji nie osx. – imaginethepoet

+0

To złe Xcode dla ciebie, zawsze ręcznie ręcznie przeciągam folder frameworku z Findera do Xcode i strony jak w latach 90. – valexa