Xcode 8 Beta - 转换为当前Swift语法失败:找不到测试主机

时间:2016-06-16 00:11:00

标签: ios xcode xcode8

当我尝试使用Xcode 8的转换向导时,收到错误消息。   尝试重新启动,下载新代码并删除DerivedData文件后,我无法避免此错误:

  

转换为当前Swift语法失败:找不到测试主机

我尝试了两个选项:Swift 2.3和Swift 3.在我选择版本后,我立即得到了错误。

以下是错误的屏幕截图:

Xcode 8 Convert Error Message

7 个答案:

答案 0 :(得分:301)

这对我有用:

  1. 在左侧浏览器中选择Xcode项目。
  2. 在项目的General标签中单击您的测试目标。
  3. 披露“测试”。在我的项目中,“主机应用程序”下拉按钮为空白。选择适当的主机应用程序。
  4. 立即尝试构建测试目标。如果成功,那么也应该转换语法。
  5. 安装Xcode 8 beta后我遇到了这个问题所以我认为这是相关的。

    图片来自@karthikkck enter image description here

答案 1 :(得分:62)

我花了一些时间在iluvcapra的其他非常有用的答案中找到“主机应用程序”下拉

所以这就是他的意思:

您可以在此处找到下拉菜单。选择你的主要目标。

This is where you find the pulldown menu

答案 2 :(得分:21)

我找到了方便的解决方法,只需编辑你的方案并禁用测试。

enter image description here

再次运行转换。

答案 3 :(得分:5)

+1 iluvcapra

或者,使用文本编辑器从 MyAppSwift.xcodeproj / project.pbxproj 文件中删除以下两项,搜索 TEST_HOST

现在,重新打开您的项目并再次运行转换向导。

    4EFFFAE51B53D5D8003CD25A /* Debug */ = {
        isa = XCBuildConfiguration;
        buildSettings = {
            BUNDLE_LOADER = "$(TEST_HOST)";
            FRAMEWORK_SEARCH_PATHS = (
                "$(SDKROOT)/Developer/Library/Frameworks",
                "$(inherited)",
            );
            GCC_PREPROCESSOR_DEFINITIONS = (
                "DEBUG=1",
                "$(inherited)",
            );
            INFOPLIST_FILE = "AF SwiftTests/Info.plist";
            LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
            PRODUCT_NAME = "FA SwiftTests";
            TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AF Swift.app/AF Swift";
        };
        name = Debug;
    };
    4EFFFAE61B53D5D8003CD25A /* Release */ = {
        isa = XCBuildConfiguration;
        buildSettings = {
            BUNDLE_LOADER = "$(TEST_HOST)";
            FRAMEWORK_SEARCH_PATHS = (
                "$(SDKROOT)/Developer/Library/Frameworks",
                "$(inherited)",
            );
            INFOPLIST_FILE = "AF SwiftTests/Info.plist";
            LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
            PRODUCT_NAME = "FA SwiftTests";
            TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AF Swift.app/AF Swift";
        };
        name = Release;
    };

答案 4 :(得分:5)

enter image description here

请尝试以下步骤:

  1. 选择Xcode左侧的项目。
  2. 转到目标并选择项目测试。
  3. 选择“常规”选项卡,然后选择“主机应用程序”下拉列表并选择“主机应用程序”。
  4. 转换或运行您的项目。
  5. 尝试这些步骤对我有用。

答案 5 :(得分:0)

在我的情况下,我删除了我的测试目标,然后使用+以下目标重新添加它并选择“iOs Unit Testing Bundle”

由于某些原因,这出现了编译错误,所以我将“每个配置中间构建文件路径:为我的测试目标更改为$(PROJECT_TEMP_DIR)/ $(CONFIGURATION)”进行调试和发布。这使编译成为工作

答案 6 :(得分:-1)

通过3个步骤解决此问题:

  1. 首先删除测试目标
  2. 选择编辑 - >转换 - >对于当前的Swift语法...并执行转换
  3. 然后添加新的测试目标