[英]Xcode 10 test failure when running on older iOS simulators - “Failed to load test bundle… no suitable image found”
我安装了Xcode 10并将我的iOS应用程序升级到Swift 4.2。 当我通过Xcode运行我的测试(UI和单元)时,在运行iOS 12的iPhone模拟器上,测试成功启动。 当我尝试在运行先前iOS版本(例如iOS 10.3.1)的模拟器上运行测试时,我得到“无法加载测试包”。 这些测试在Xcode 9.4上成功运行。 我可以在这个旧的模拟器上运行我的应用程序而不会出现问题。
Xcode输出如下(“Reading List”是应用程序名称):
2018-09-16 15:11:36.667 ReadingList [11401:11478426]无法从文件加载测试包:/// Users / andrewbennet / Library / Developer / Xcode / DerivedData / ReadingList-edsxqugqvkymbgfrbivbjmzebuya / Build / Products / Debug-iphonesimulator /ReadingList.app/PlugIns/ReadingList_UnitTests.xctest/:Error Domain = NSCocoaErrorDomain Code = 3587“dlopen_preflight(/Users/andrewbennet/Library/Developer/Xcode/DerivedData/ReadingList-edsxqugqvkymbgfrbivbjmzebuya/Build/Products/Debug-iphonesimulator/ReadingList.app /PlugIns/ReadingList_UnitTests.xctest/ReadingList_UnitTests):找不到合适的图像。找到:/Users/andrewbennet/Library/Developer/Xcode/DerivedData/ReadingList-edsxqugqvkymbgfrbivbjmzebuya/Build/Products/Debug-iphonesimulator/ReadingList.app/PlugIns/ReadingList_UnitTests .xctest / ReadingList_UnitTests:mach-o,但不是为iOS模拟器构建的“UserInfo = {NSLocalizedFailureReason =捆绑包已损坏或缺少必要的资源。,NSLocalizedRecoverySuggestion =尝试重新安装捆绑包。,NSFilePath = / U sers / andrewbennet / Library / Developer / Xcode / DerivedData / ReadingList-edsxqugqvkymbgfrbivbjmzebuya / Build / Products / Debug-iphonesimulator / ReadingList.app / PlugIns / ReadingList_UnitTests.xctest / ReadingList_UnitTests,NSDebugDescription = dlopen_preflight(/ Users / andrewbennet / Library / Developer / Xcode /DerivedData/ReadingList-edsxqugqvkymbgfrbivbjmzebuya/Build/Products/Debug-iphonesimulator/ReadingList.app/PlugIns/ReadingList_UnitTests.xctest/ReadingList_UnitTests):找不到合适的图像。 找到:/Users/andrewbennet/Library/Developer/Xcode/DerivedData/ReadingList-edsxqugqvkymbgfrbivbjmzebuya/Build/Products/Debug-iphonesimulator/ReadingList.app/PlugIns/ReadingList_UnitTests.xctest/ReadingList_UnitTests:mach-o,但不是为iOS模拟器构建的,NSBundlePath = / Users / andrewbennet / Library / Developer / Xcode / DerivedData / ReadingList-edsxqugqvkymbgfrbivbjmzebuya / Build / Products / Debug-iphonesimulator / ReadingList.app / PlugIns / ReadingList_UnitTests.xctest,NSLocalizedDescription =无法加载捆绑“ReadingList_UnitTests”因为它已损坏或缺少必要的资源。}
线路mach-o, but not built for iOS simulator
似乎它可能是关键。 我该如何解决这个问题?
测试目标将iOS Deployment Target
设置保留为默认值。
在Xcode 9.4中,这等于“iOS 11.4”,但由于某种原因,测试仍然可以在“iPhone 7(10.3)”模拟器上运行。 在Xcode 10中,似乎行为发生了变化,因为测试不再运行在默认“iOS 12”之前运行iOS版本的模拟器上。
在Project Navigator中,选择项目文件。 在“项目配置”窗口中选择“目标”。 选择Build Settings选项卡,(Basic和Levels)向下滚动到iOS Deployment Target,然后选择所需的OS版本。
这解决了我的问题。 戴尔,戴夫
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.