运行 Xcode 测试时未找到 FBSnapshotTestCase 图像

Posted

技术标签:

【中文标题】运行 Xcode 测试时未找到 FBSnapshotTestCase 图像【英文标题】:FBSnapshotTestCase image not found while running Xcode test 【发布时间】:2017-04-21 01:44:12 【问题描述】:

不知道为什么要举报FBSnapshotTestCase image not found while running Xcode test

我尝试将FBSnapshotTestCase 链接到目标ChartTests,但仍然看到同样的错误。

我不熟悉这个,有人可以帮忙吗?提前致谢。

复制:

从https://github.com/danielgindi/Charts下载项目

导航到项目根目录,

    (可选)运行carthage bootstrap 来安装依赖项。该项目有一个依赖检查,所以如果你不运行它,它会在启动测试时运行它。

    输入

    xcodebuild -project 'Charts.xcodeproj' -scheme 'ChartsTests' -configuration 'Debug' -sdk iphonesimulator -destination id='E40B5365-EF82-430D-A767-2A37995CCEE1' 干净构建测试

目标 id 可以是机器上模拟器的任何 uuid。

然后它报告:

2017-04-20 13:47:57.611 xctest[90924:13099756] The bundle “ChartsTests” couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle.
2017-04-20 13:47:57.611 xctest[90924:13099756] (dlopen_preflight(/Users/user/Library/Developer/Xcode/DerivedData/Charts-ambsdrskvocwekcmoobyhanaiixm/Build/Intermediates/CodeCoverage/Products/Debug-iphonesimulator/ChartsTests.xctest/ChartsTests): Library not loaded: @rpath/FBSnapshotTestCase.framework/FBSnapshotTestCase
  Referenced from: /Users/user/Library/Developer/Xcode/DerivedData/Charts-ambsdrskvocwekcmoobyhanaiixm/Build/Intermediates/CodeCoverage/Products/Debug-iphonesimulator/ChartsTests.xctest/ChartsTests
  Reason: image not found)
2017-04-20 13:47:57.625 xcodebuild[90311:13086990] Error Domain=IDETestOperationsObserverErrorDomain Code=6 "Early unexpected exit, operation never finished bootstrapping - no restart will be attempted" UserInfo=NSLocalizedDescription=Early unexpected exit, operation never finished bootstrapping - no restart will be attempted

Testing failed:
    Test target ChartsTests encountered an error (Early unexpected exit, operation never finished bootstrapping - no restart will be attempted)
** TEST FAILED **

【问题讨论】:

【参考方案1】:

原来我需要在构建阶段添加运行脚本,并让 carthage 复制框架:

从https://github.com/Carthage/Carthage#if-youre-building-for-ios-tvos-or-watchos复制:

在应用程序目标的“构建阶段”设置选项卡上,单击“+”图标并选择“新建运行脚本阶段”。创建一个运行脚本,在其中指定您的 shell(例如:/bin/sh),将以下内容添加到 shell 下方的脚本区域:

/usr/local/bin/carthage copy-frameworks

并在“输入文件”下添加要使用的框架的路径,例如:

$(SRCROOT)/Carthage/Build/iOS/FBSnapshotTestCase.framework

【讨论】:

以上是关于运行 Xcode 测试时未找到 FBSnapshotTestCase 图像的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 项目中使用 C/C++ 库时未找到体系结构 x86_64 的符号

使用grunt运行jest时未找到任何测试

从 Xcode 启动 App Clip 时未调用 SceneDelegate 的“继续”

iOS XCode - 为 Profile 构建时未找到 Swift 类

构建 iOS 框架时未找到 Ktor 和 kotlinx 依赖项

APNS:didReceiveRemoteNotification:fetchCompletionHandler 在应用程序处于后台时未运行(除非 xcode 正在调试)