我有一个现有的Objective-C项目,我希望添加一个新的Xcode 7 UI测试目标,并将OHHTTPStubs作为依赖项。
我在Xcode中添加了新的(Swift 2.0)UI测试目标,然后将其添加到我的Podfile
:
target 'FooUITests' do
pod 'OHHTTPStubs', '4.0.1'
end
我跑pod update
,清理并重建。但是当我在模板UI测试的顶部尝试import OHHTTPStubs
。为我创建的.swift文件Xcode时,它会抱怨"没有这样的模块' OHHTTPStubs'"。
我正在使用Cocoapods版本0.37.2 - 将Objective-C依赖项导入到Swift(... UI测试)目标中,甚至可以工作吗?
更新如下面我的self-answer所述,将use_frameworks!
添加到我的Pod文件中可以获得干净的编译 - 我可以在我的测试顶部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
版本。
有关正在发生的事情的任何提示?
答案 0 :(得分:2)
原来我需要做的就是在use_frameworks!
中告诉Cocoapods Podfile
(仅适用于Swift目标):
target 'FooUITests' do
use_frameworks!
pod 'OHHTTPStubs', '4.0.1'
end
答案 1 :(得分:1)
将[CP] Embed Pods Frameworks
运行脚本构建阶段添加到我的测试目标,为我修复此问题,如in this CocoaPods GitHub issue所述。
请注意,在常规目标中,“构建阶段”部分包含[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
运行脚本阶段手动添加到测试目标(运行"${SRCROOT}/../../Pods/Target Support Files/Pods-YOURTESTTARGET/Pods-YOURTESTTARGET-resources.sh"
)。
答案 2 :(得分:0)
似乎使用CocoaPods 0.38.0.beta.2工作,检查https://github.com/CocoaPods/CocoaPods/issues/3709