Xcode 8单元测试错误:无法确定TEST_HOST的分发标识符

Mar*_*ski 11 xcode ios xcode8

我有一个Xcode项目似乎不想编译我的主应用程序目标,以便在运行单元测试时尝试将其用作应用程序主机之前生成产品.从Xcode,我试图运行单元测试? + U.

我立即得到一个对话框,说明: Could not determine bundle identifier for [app name] TEST_HOST

(将[app name]替换为真实的应用程序名称)

此对话框还包括本地派生数据产品目录的路径: "/Users/***/Library/Developer/Xcode/DerivedData/Lowes-aymgdtrbrarmcidtkxoqxeafmxmj/Build/Products/Debug-iphonesimulator/[app name]"

我在TEST_HOST设置指向的情况下设置了单元测试$(BUILT_PRODUCTS_DIR)/[app name].app/[app name].单元测试目标对主应用程序目标具有目标依赖性.BUNDLE_LOADER设置设置为$(TEST_HOST).如果我首先通过点击编译主应用程序目标? + B,则会创建正确的目录结构和应用程序,然后点击? + Ubootstraps并正确运行单元测试.如果我干净并再试一次,它会立即失败.我之前从未遇到过这个问题,并且在应用程序转换为Swift 3之后似乎已经出现了.这可能会也可能不会对问题产生任何影响,但不是很确定.

我在这里已经阅读了几个答案并尝试了很多建议,但它们似乎与我没有相同的根本问题.对于大多数人来说,似乎将主机应用程序设置为None,然后返回主目标来修复问题.对我来说情况并非如此.

我尝试了新的检查,将应用程序和测试目标重新转换为Swift 3,以及标准的clean/clean构建文件夹/擦除派生数据.这些似乎都没有任何影响.

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

Mar*_*ski 18

我找到了解决方案.它可能不适用于每个场景,但它修复了我的场景.在"信息"选项卡上的主项目设置中,可以选择在启动命令行构建时运行的配置.我被设定为发布.将此翻转到Debug修复了我的问题.

Xcode项目设置,信息选项卡

  • 另一种可能的解决方案是在Release配置中设置"Bundle Loader". (2认同)