Xcode-SenTestingKit не найден

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

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

== 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/ находится там.

Итак, что мне не хватает?


person Sam Valens    schedule 28.07.2010    source источник
comment
Сэм, все программное обеспечение Apple в предварительной версии находится в SDK, поэтому вы не сможете (читай: вероятно, не должны) обсуждать его вне форумов разработчиков Apple. Напишите туда, сообщите об ошибке.   -  person typeoneerror    schedule 28.07.2010
comment
Типа одна ошибка, вы имеете в виду NDA. Это SDK.   -  person Steven Behnke    schedule 28.07.2010
comment
Подобные вопросы лучше задавать на форумах разработчиков Apple, где вы, скорее всего, получите ответ.   -  person Abizern    schedule 28.07.2010
comment
Я все это понимаю, но на это можно было бы ответить о xcode в целом. Пути поиска и настройки компоновщика также присутствуют в xcode 3. Поэтому я отредактировал вопрос, чтобы убрать ссылки на Xcode 4, чтобы сделать его общим вопросом xcode.   -  person Sam Valens    schedule 28.07.2010
comment
У меня та же проблема, за исключением созданных мной фреймворков. Каким бы ни был путь поиска, он не может их найти. Время сообщить об ошибке!   -  person huntaub    schedule 31.07.2010
comment
Абизерн устанавливает новый рекорд: самая веселая вещь из когда-либо напечатанных. Больше шансов получить ответ на форумах Apple? Шутки в сторону?   -  person Glenn Maynard    schedule 26.08.2012


Ответы (6)


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

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

person davidwu    schedule 05.03.2011
comment
Да, это сработало. Я делал это раньше, но я думаю, что AppCode сбросил его обратно. Если вы используете AppCode, дважды проверьте. - person vaughan; 04.12.2013

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

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

$(SDKROOT)/Developer/Library/Frameworks
$(DEVELOPER_LIBRARY_DIR)/Frameworks
person DougW    schedule 23.02.2012
comment
Это потому, что (SDKROOT)/Developer/Library/Frameworks — это рука, $(DEVELOPER_LIBRARY_DIR)/Frameworks — это Intel. - person valexa; 06.06.2012
comment
@velexa - Значит, ты хочешь сказать, что второй не нужен или ...? В любом случае, просто передаю информацию о том, что у меня была эта проблема, и решение на этой доске, похоже, сработало. - person DougW; 12.06.2012
comment
я просто объясняю, почему ваше решение работает, да, добавление путей к сборкам Intel Framework для цели руки не требуется - person valexa; 12.06.2012
comment
@velexa - Может быть, я что-то упускаю, но симулятор iphone не является мишенью для рук. Это то, против чего мы строим. - person DougW; 12.06.2012
comment
цель проекта, который вы запускаете в симуляторе, говорит arm под его настройками архитектуры, он не будет использовать фреймворки из $(DEVELOPER_LIBRARY_DIR)/Frameworks, но /Developer/Platforms/iPhoneSimulator.platform/ при запуске в симуляторе вы можете добавить этот путь в конец вашего списка так же без эффекта, каркасы рук для вашей цели руки находятся в $(SDKROOT)/Developer/Library/Frameworks, это единственный путь, который вам нужен в списке - person valexa; 13.06.2012
comment
Спасибо! Это сработало для меня. Мне тоже пришлось переместить $(inherited) в конец списка. - person vaughan; 09.12.2013

У меня была эта проблема, потому что в моей установке Xcode есть место: /Xcode 4.0.2

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

person Christopher Pickslay    schedule 08.07.2011
comment
В моем случае мне также пришлось добавить кавычки вокруг $(SDKROOT)/Developer/Library/Frameworks. - person azdev; 19.12.2011
comment
Или просто используйте $(DEVELOPER_FRAMEWORKS_DIR_QUOTED) ;) - person Pascal; 25.07.2012

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

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

скриншот

person Stuart Carnie    schedule 05.01.2011
comment
Это решило проблему для меня. То есть я добавил фреймворк из этого пути, и после этого Xcode 4 автоматически обновил Framework SearchPaths. Сначала я пытался использовать SenTestingKit.framework в $(DEVELOPER_DIR)/Library/Frameworks/, но это не сработало. - person August Lilleaas; 13.05.2011

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

Если бы вы запустили на них "lipo-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/SenTestingKit.framework/SenTestingKit — это архитектура: i386.

person valexa    schedule 06.06.2012
comment
Все равно не проясняется. Когда вы выбираете добавить фреймворк в xcode, он дает вам только возможность SenTestingKit, он не позволяет вам выбрать конкретный вариант, отличный от osx. - person imaginethepoet; 15.11.2013
comment
Это плохой Xcode для вас, я всегда просто вручную перетаскиваю папку фреймворка из Finder в Xcode и веселюсь, как в 90-х. - person valexa; 28.11.2013

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

person Daniel Farrell    schedule 03.01.2011
comment
да. Я добавил ${DEVELOPER_LIBRARY_DIR}/Frameworks в пути поиска Framework, и это исправлено. - person pseudosudo; 22.03.2011