我在Xcode 5.0.2中运行项目时遇到问题
我收到以下错误:
dyld: Library not loaded: @rpath/XCTest.framework/Versions/A/XCTest
Referenced from: /Users/chris/Library/Developer/Xcode/DerivedData/relatio-cwlmozvklaldmictbbjthzuoxnxz/Build/Products/Debug/relatio.app/Contents/MacOS/relatio
原因:未找到图片 (lldb)
如何解决此问题?
答案 0 :(得分:24)
看起来您的主要目标是链接到XCTest.framework以及您的测试目标。它应该只与主要目标相关联。
1)转到项目设置
2)转到您的应用主要目标 - >其他链接器标志
3)删除' -framework XCTest'
4)确保'其他链接器标记'测试目标的字段仍包含' -framework XCTest'
答案 1 :(得分:17)
我通过重命名我的目标遇到了这个错误,其中一个是测试目标。在阅读其他答案后,我意识到我的构建阶段>编译源将测试类包含为非测试目标的编译源,然后尝试导入XCTest框架。
从我的常规目标的Compile Sources中删除测试类解决了这个问题。
答案 2 :(得分:7)
问题在于,根据您发布的dyld错误消息,您的应用程序正在与XCTest.framework进行链接。那是不对的;只有你的测试包需要链接到XCTest.framework,因为只有你的测试包包含测试。
答案 3 :(得分:6)
我遇到类似OCMock库的问题,解决方案是:
target :"Application Tests", :exclusive => true do
pod 'OCMock'
end
答案 4 :(得分:5)
在我的情况下,这是Swift Package Manager向主要应用程序目标添加的RxTests。在Pod中,您可以决定将哪些Rx组件添加到哪个目标,但SPM会将其全部默认添加到主要目标。
答案 5 :(得分:4)
这就是我解决问题的方法:
答案 6 :(得分:2)
在我的主要Target的“Link Binary With Libraries”(在Build Phases下),我正在使用的测试框架(Nimble.framework)导致了这个问题。删除它,一切都很好!
答案 7 :(得分:1)
在框架搜索路径AND上输入框架的引用 在" Build Settings" ---...下运行路径搜索路径现在所有设置都使用import来调用您的项目
答案 8 :(得分:1)
答案 9 :(得分:0)
我有同样的问题是因为我在框架中添加了一个新文件。所以,只需运行" pod install
"解决了我的问题。但请确保您的广告连播也在Tests
下定位。
答案 10 :(得分:0)
答案 11 :(得分:0)
对于我们来说,我们想同时将Mockingjay
用于应用程序目标和测试目标
target 'MyProject' do
pod 'Mockingjay/Core'
# all pods that are not test go here
target 'MyProjectTest' do
inherit! :search_paths
pod 'Mockingjay/XCTest'
pod 'Quick', ' ~> 0.9.2'
# .. all test pods go here
end
end
答案 12 :(得分:0)
一个对我有用的解决方案是将Podfile中测试目标的inherit
attribute从:search_paths
更改为:complete
。
尽管this answer建议:search_paths
是为测试环境设计的。
target 'myapp' do
use_frameworks!
target 'myappTests' do
#inherit! :search_paths
inherit! :complete
end
end
答案 13 :(得分:0)
我在通过Carthage使用ios-snapshot-test-case v5.0.2时遇到此错误。问题与XCode 11有关。Apple将libswiftXCTest.dylib
重命名为libXCTestSwiftSupport.dylib
,并添加了XCTest.swiftmodule
,它具有相同的符号并且可以代替旧的符号。但是苹果忘了告诉iOS 11.x模拟器这个变化。
因此,您需要修复较旧的iOS版本模拟器。这是为我修复的终端命令:
sudo zsh -c ' sourcedir="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/lib";
targetdir="/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 11.4.simruntime/Contents/Resources/RuntimeRoot/usr/lib";
ln -s $sourcedir/libXCTestSwiftSupport.dylib $targetdir/libswiftXCTest.dylib;
ln -s $sourcedir/XCTest.swiftmodule $targetdir/XCTest.swiftmodule'
在这里查看我的评论:https://github.com/CocoaPods/CocoaPods/issues/9165#issuecomment-573523322
答案 14 :(得分:0)
转到常规>目标(左侧)。
您可能有第二项包含单词test / s。单击它。
在此常规设置>测试>主机应用程序>从选项中选择(您的应用程序名称)。就是这样!