XCTest 错误:无法加载捆绑包。尝试重新安装捆绑包

问题描述 投票:0回答:8

在我通过 doint

Product -> Test
运行 ProjectNameTests.m (空测试文件)后,项目构建成功,但它抛出并给出以下错误:

2016-01-10 11:25:32.677 xctest[66104:5611958] The bundle “ProjectNameTests” couldn’t be loaded. Try reinstalling the bundle.
2016-01-10 11:25:32.677 xctest[66104:5611958] (dlopen(/Users/XYZ/Library/Developer/Xcode/DerivedData/ProjectName-dnwnjlzdzxbcyydkxsumlvokmhvk/Build/Products/Debug-iphonesimulator/ProjectNameTests.xctest/ProjectNameTests, 265): Symbol not found: _FBSDKErrorArgumentCollectionKey
  Referenced from: /Users/XYZ/Library/Developer/Xcode/DerivedData/ProjectName-dnwnjlzdzxbcyydkxsumlvokmhvk/Build/Products/Debug-iphonesimulator/ProjectNameTests.xctest/ProjectNameTests
  Expected in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Agents/xctest
 in /Users/XYZ/Library/Developer/Xcode/DerivedData/ProjectName-dnwnjlzdzxbcyydkxsumlvokmhvk/Build/Products/Debug-iphonesimulator/ProjectNameTests.xctest/ProjectNameTests)
Program ended with exit code: 83

我尝试过从测试中删除 UIKit、更改 Match-O 类型、将模拟器切换到 iPhone 5 以及类似答案中建议的其他内容,但没有任何运气。有什么想法吗?

ios xcode unit-testing xctest nsbundle
8个回答
4
投票

几年后回答(Xcode 13.4),但希望这会对某人有所帮助!

我的问题与代码签名有关。

转到测试目标的 Build Settings 和:

  • 代码签名身份>调试更改为Apple开发
  • 代码签名身份 > 发布更改为 Apple 分发

如果尚不存在,您可能需要创建一个 Apple Distribution 证书。

以下是创建它的步骤:

  • 转到 Xcode > 首选项 > 帐户。单击您用于应用程序的帐户。
  • 单击管理证书
  • 单击左下角的
    +
    图标并选择
    Apple Distribution

2
投票

我刚刚遇到了类似的问题,结果发现 Xcode 项目的部署目标设置为 7.2,但 Expecta 和 septa 需要 8.0 或更高版本。


2
投票

我遇到退出代码 83 的错误,无法识别添加到项目的外部库中的符号。

就我而言,通过在测试目标常规配置中将“主机应用程序”设置为应用程序来解决此问题。我还检查了“允许测试主机应用程序 API”


2
投票

即使我也遇到同样的错误 我按照以下步骤解决了这个问题

将测试目标的Build settings中的Test Host设置为 $(BUNDLE_LOADER)

实际上,我试图将单元测试添加到已经存在的项目中,我应该遵循链接中给出的方法中的过程使用 Xcode 4 将单元测试添加到现有的 iOS 项目,我错过了该步骤


1
投票

我想我迟到了,但对我有用的是。

为现有项目创建单元测试包时,检查以下几点。

  • 测试包应该在同一个团队,开发团队应该在同一个团队。
  • 组织标识符应该相同。

如果您使用 Firebase Pods

  • 复制测试目标中的所有 Firebase Pod 并安装 Pod

重新启动 Xcode。你就可以走了。


0
投票

有时,此错误也可能因愚蠢的原因而发生:目标中的零测试。

仔细检查您的配置。


0
投票

我遇到了类似的问题,就我而言,这也是签名问题。确保托管应用程序设置为与测试目标相同的开发团队。调整两个目标的签名以匹配相同的开发团队为我解决了这个问题。

感谢您为我指明了正确的方向。从错误消息来看,我从来没有想过这是一个“很好的旧签名问题”:-)


-1
投票

删除并重新添加该方案对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.