Подтвердить что ты не робот

Включить зависимость тестирования UI Xcode 7 через Cocoapods?

У меня есть существующий проект Objective-C, и я хочу добавить новую цель тестирования UI-теста Xcode с OHHTTPStubs в качестве зависимости.

Я добавил новую цель тестирования тестирования Swift 2.0 в Xcode, а затем добавил ее к моему Podfile:

target 'FooUITests' do
    pod 'OHHTTPStubs', '4.0.1'
end

Я запустил pod update, очистил и перестроил. Но когда я пытаюсь и import OHHTTPStubs в верхней части шаблона UI test.swift файл Xcode создан для меня, он жалуется "Нет такого модуля" OHHTTPStubs ".

Я использую Cocoapods версии 0.37.2 - импортирует зависимость Objective-C в целевой объект Swift (... UI test), даже предназначенный для работы?

ОБНОВЛЕНИЕ: Как указано в моем автоответке ниже, добавление use_frameworks! в мой подфайл получает чистую компиляцию - я могу import OHHTTPStubs в верхней части моего тестового файла, ссылочных классов и методов, завершение работы кода, но когда я действительно иду для запуска тестов, я получаю следующий вывод в консоли Xcode:

2015-06-18 10:06:57.134 XCTRunner[51557:609693] The bundle "FooUITests" couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle.
2015-06-18 10:06:57.135 XCTRunner[51557:609693] (dlopen_preflight(/Users/foo/Library/Developer/CoreSimulator/Devices/38181A1B-67B1-4D7F-B434-85361533F985/data/Containers/Bundle/Application/83C68748-55A3-4A02-8862-C18ADEF895B5/FooUITests-Runner.app/PlugIns/FooUITests.xctest/FooUITests): Library not loaded: @rpath/OHHTTPStubs.framework/OHHTTPStubs
  Referenced from: /Users/foo/Library/Developer/CoreSimulator/Devices/38181A1B-67B1-4D7F-B434-85361533F985/data/Containers/Bundle/Application/83C68748-55A3-4A02-8862-C18ADEF895B5/FooUITests-Runner.app/PlugIns/FooUITests.xctest/FooUITests
  Reason: image not found)

Кажется, что Release-iphoneos и Release-iphonesimulator сборки OHHTTPStubs.framework в моем каталоге ~/Library/Developer/DerivedData.

Любые намеки относительно того, что происходит?

4b9b3361

Ответ 1

Оказывается, все, что мне нужно было сделать, это сказать Cocoapods use_frameworks! (только для Swift-цели) в Podfile:

target 'FooUITests' do
  use_frameworks!
  pod 'OHHTTPStubs', '4.0.1'
end

Ответ 2

Добавление фазы сборки [CP] Embed Pods Frameworks Запуск Script для моей тестовой цели исправлено для меня, как описано в этой проблеме CocoaPods GitHub.

Обратите внимание, что в вашей обычной цели раздел "Сборка фаз" содержит как [CP] Copy Pods Resources (который работает "${SRCROOT}/../../Pods/Target Support Files/Pods-YOURTARGET/Pods-YOURTARGET-resources.sh"), так и [CP] Embed Pods Frameworks (который работает "${SRCROOT}/../../Pods/Target Support Files/Pods-YOURTARGET/Pods-YOURTARGET-frameworks.sh"). Но ваша тестовая цель содержит только [CP] Copy Pods Resources.

Вручную добавьте фазу [CP] Embed Pods Frameworks Выполнить Script к тестовой цели (для запуска "${SRCROOT}/../../Pods/Target Support Files/Pods-YOURTESTTARGET/Pods-YOURTESTTARGET-resources.sh").