В Xcode 6.1.1, а также в Xcode 6.0.1, то XCTest.framework нет в списке больше в качестве доступной структуры. Однако в Xcode 5.1.1 перечислены рамки.
Итак, что-то изменилось между Xcode 5 и 6, когда дело доходит до тестирования. Например, при создании нового проекта в Xcode 6 вам больше не нужна инфраструктура XCTest. Вы можете просто добавить новый тестовый пример, выполнить сборку и выполнить тесты просто отлично. Мне еще предстоит выяснить, почему это так, но для вас это может быть первым делом: просто скопируйте тестовый пример и посмотрите, работают ли все.
Если это не так, вы можете попробовать это уродливое обходное решение: откройте проект со старой версией Xcode, добавьте туда фреймворк и вернитесь к работе в новой версии Xcode. Это сработало для меня, когда я попробовал его с Xcode 5.1.1.
EDIT: Причина, почему XCTest.framework больше не нужны в проектах, созданных Xcode 6, потому что эти проекты имеют настройку CLANG_ENABLE_MODULES набор для YES сборки. Xcode 6 предоставляет это в пользовательском интерфейсе под названием «Включить модули (C и Objective-C)». Если этот параметр включен, любые операторы #import
для системных фреймворков, таких как XCTest, вызывают clang
, чтобы автоматически ссылаться на эту структуру. Подробная информация доступна в "Modules" section of the clang documentation. После того, как этот параметр сборки включен, вы также можете удалить любые другие системные фреймворки из фазы сборки «Связывание с библиотеками» ваших целей.
И для полноты: Причина Xcode 6 больше не перечисляет XCTest.framework как доступные рамки, потому что расположение фреймворки внутри Xcode пучка изменилось:
# Xcode 6
/Applications/Xcode-6.1.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework
# Xcode 5
/Applications/Xcode-5.1.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/Developer/Library/Frameworks/XCTest.framework
Очевидно, Apple в настоящее время полностью зависит от CLANG_ENABLE_MODULES, чтобы получить целевые объекты для сравнения с XCTest.framework. Если вы хотите Xcode 6 в список XCTest.framework как доступные рамки, вы можете вручную создать символическую ссылку внутри приложения пачки Xcode:
cd /Applications/Xcode-6.1.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks
sudo ln -s /Applications/Xcode-6.1.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework .
Вам необходимо перезапустить Xcode после создания ссылки.