ios - Xcode 8 单元测试错误 : Could Not Determine Bundle Identifier for TEST_HOST

标签 ios xcode xcode8

我有一个 Xcode 项目,它似乎不想编译我的主要应用程序目标以在运行单元测试时尝试将其用作应用程序宿主之前生成产品。在 Xcode 中,我尝试使用 ⌘ + U 运行单元测试。

我立即得到一个对话框,上面写着: 无法确定 [app name] TEST_HOST 的包标识符

(将[应用名称]替换为真实的应用名称)

此对话框还包括我的本地派生数据产品目录的路径: “/Users/***/Library/Developer/Xcode/DerivedData/Lowes-aymgdtrbrarmcidtkxoqxeafmxmj/Build/Products/Debug-iphonesimulator/[应用名称]”

我使用指向 $(BUILT_PRODUCTS_DIR)/[app name].app/[app name] 的 TEST_HOST 设置设置了单元测试。单元测试目标对主应用程序目标具有目标依赖性。 BUNDLE_LOADER 设置设置为 $(TEST_HOST)。如果我首先通过点击 ⌘ + B 编译主应用程序目标,则会创建正确的目录结构和应用程序,然后点击 ⌘ + U Bootstrap 并正确运行单元测试.如果我清理并重试,它会立即失败。我以前从未遇到过这个问题,它似乎是在应用程序转换为 Swift 3 后突然出现的。这可能会或可能不会对问题产生任何影响,不太确定。

我已经阅读了这里的几个答案并尝试了很多建议,但他们似乎没有与我相同的根本问题。对于大多数人来说,将主机应用程序设置为 None 并返回到主要目标似乎可以解决问题。我不是这种情况。

我尝试了全新的结帐,将应用程序和测试目标重新转换为 Swift 3,以及标准的清理/清理构建文件夹/删除派生数据。这些似乎都没有任何效果。

有没有其他人遇到过这个问题并找到了解决方案?

最佳答案

我找到了解决办法。它可能不适用于所有情况,但它修复了我的情况。在“信息”选项卡上的主项目设置中,有一个选项可以选择在启动命令行构建时要运行的配置。我的设置为发布。将其翻转为调试解决了我的问题。

Xcode Project Settings, Info Tab

关于ios - Xcode 8 单元测试错误 : Could Not Determine Bundle Identifier for TEST_HOST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42236105/

相关文章:

ios - xcode 8 权利不匹配错误

ios - 适用于 iOS 的 Cordova 移动应用程序未与服务器通信

iphone - 设置中的圆角矩形按钮

ios - UIButton `setTitleShadowColor:ForState` 未按预期工作

ios - 如何更改谷歌地图 SDK iOS 上动态标记的坐标?

ios - 无法将类型 'AppDelegate' 的值分配给类型 'GIDSignInDelegate!"

ios - Xcode 8 中没有这样的模块 'CryptoSwift'

ios - 从 UIPanGestureRecogniser 获取 UIButton 标题

ios - "Collection View"的框架在运行时会有所不同 Swift3 iOS10 StoryBoard

ios - 自动续订的应用内购买订阅如何运作?