2010-07-28 2 views
41

У меня проблема, возникшая при обновлении моей версии xcode. Я использую модульные тесты, и теперь, когда я пытаюсь импортировать SenTestingKit (#import <SenTestingKit/SenTestingKit.h>), я получаю эту ошибку: SenTestingKit/SenTestingKit.h: No such file or directory.Xcode - SenTestingKit не найден

Я посмотрел на мои настройки сборки, и у меня есть следующие варианты конфигурации:

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

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

Я проверил /Xcode4/Library/Frameworks и SenTestingKit.framework/ каталог является там.

Так что мне не хватает?

+1

Сэм, все программное обеспечение Apple в предварительном выпуске находится под SDK, поэтому вы не сможете (читайте: возможно, не следует) обсуждать его за пределами форумов Apple Developer. Отправляйтесь туда, сообщите об ошибке. – typeoneerror

+5

Typeoneerror, вы имеете в виду NDA. Это SDK. –

+0

Вопросы, подобные этому, лучше задавать на форумах разработчиков Apple, где вы, скорее всего, получите ответ. – Abizern

ответ

0

Вы можете проверить, что Xcode является проверкой Framework Пути поиска: Framework Search Paths

+0

Да. Я добавил $ {DEVELOPER_LIBRARY_DIR}/Frameworks в пути поиска Framework и исправил его. –

1

Для моего Framework Пути поиска, я явно добавил /$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk/Developer/Library/Frameworks. Правильно компилируется для имитатора и устройства.

Я уверен, что существуют переменные окружения, поэтому он работает по версиям SDK, поэтому я буду обновлять ответ, если найду их.

screenshot

+0

Это решило проблему для меня. То есть я добавил фреймворк с этого пути, и Xcode 4 автоматически обновил Framework SearchPaths после этого. Сначала я попытался использовать SenTestingKit.framework в $ (DEVELOPER_DIR)/Library/Frameworks /, но это не сработало. –

57

У меня была такая же проблема при создании нового тестового случая в XCode. Однако это было из-за тупости, когда я выбирал неправильную цель при создании тестового примера.

Использование «File New ...», тестовый пример включался и скомпилировался с целевыми параметрами приложения вместо целевого образца теста. Проверка закладки Build Phases и поиск в раскрытии «Источники компиляции» показали мою особую проблему.

+2

Спасибо, что полностью сделал трюк! –

+0

Да, это сработало. Я сделал это раньше, но я думаю, что AppCode вернет его обратно. Если вы используете двойную проверку AppCode. – vaughan

+0

Мне жаль, что я не смог бы удвоить – DCMaxxx

6

Я имел этот вопрос, потому что есть место в моей установке Xcode: /Xcode 4.0.2

Я установил его, добавив "${DEVELOPER_LIBRARY_DIR}/Frameworks" (с кавычками) на мой Framework Пути поиска.

+0

В моем случае мне также пришлось добавлять кавычки вокруг '$ (SDKROOT)/Developer/Library/Frameworks'. – azdev

+0

Или просто используйте '$ (DEVELOPER_FRAMEWORKS_DIR_QUOTED)';) – Pascal

18

У меня был этот вопрос после обновления до xcode 4.3. Кажется, ничего не работало, пока я не наткнулся на this post. У меня уже были одни и те же пути поиска, но изменение порядка решило проблему.

Итак, из статьи вам понадобятся следующие два значения в ваших путях поиска: в этом порядке.

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

Это потому, что (SDKROOT)/Developer/Library/Frameworks - arm, $ (DEVELOPER_LIBRARY_DIR)/Frameworks is intel – valexa

+0

@velexa - Итак, ваша мысль заключается в том, что вторая не нужна или...? Во всяком случае, просто передавая информацию, которая у меня возникла, и решение на этой доске, похоже, было. – DougW

+0

Я просто объясняю, почему ваше решение работает, да, добавление путей к инфраструктуре intel для сборки цели не обязательно – valexa

1

Чтобы выяснить это раз и навсегда, есть три SenTestingKit рамки в Xcode SDK, один для OS X, один для прошивкой и один для тренажера.

Если бы вы запускали «липо -info» на них вы бы увидели, что

Архитектуры в файле жира: /Developer/Library/Frameworks/SenTestingKit.framework/Versions/A/SenTestingKit являются: x86_64 i386

архитектуры в файле жира: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit является архитектура: ARMv7

Обезжиренный файл: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/Developer/Library/Frameworks/SenTestin gKit.framework/SenTestingKit - это архитектура: i386

+0

Все еще не разобрался. Когда вы выбираете добавление фреймворка в xcode, он дает вам только параметр «SenTestingKit», он не позволяет вам выбрать конкретный не osx. – imaginethepoet

+0

Thats bad Xcode для вас, я всегда просто перетаскиваю папку фреймворка из Finder в Xcode и вечеринку вроде 90-х – valexa

Смежные вопросы