Xcode 8 Beta – 转换为当前Swift语法失败:无法findtesting主机

当我尝试使用Xcode 8的“转换向导”时收到错误消息。 尝试重新启动,下载新的代码,并删除我的DerivedData文件后,我不能逃避这个错误:

转换为当前Swift语法失败:无法findtesting主机

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

以下是错误的截图:

Xcode 8转换错误消息

这对我工作:

  1. 在左侧浏览器中selectXcode项目。
  2. 在项目的General选项卡中单击您的testing目标。
  3. 披露“testing”。 在我的项目中,“主机应用程序”下拉button是空白的。 select适当的主机应用程序。
  4. 现在尝试构build您的testing目标。 如果成功,那么转换语法也应该如此。

我安装Xcode 8testing版后出现这个问题,所以我认为这是相关的。

我花了一些时间来findiluvcapra提供的非常有用的答案中提到的“主机应用程序”下拉菜单。

所以这就是他的意思:

这是你find下拉菜单的地方。 select你的主要目标。

这是你找到下拉菜单的地方

我发现这个简单的修复,只需编辑您的计划,并禁用testing。

在这里输入图像说明

然后再次运行转换。

+1 iluvcapra

或者,使用文本编辑器从MyAppSwift.xcodeproj / project.pbxproj文件中删除以下两项,searchTEST_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; }; 

在这里输入图像说明

请尝试以下步骤:

  1. 在Xcode的左边select你的项目。
  2. 转到目标并select您的项目testing。
  3. select常规选项卡,然后select主机应用程序下拉菜单并select您的主机应用
  4. 转换或运行您的项目。

尝试这些步骤为我工作。

在我的情况下,我删除了我的testing目标,然后使用+下面的目标重新添加它,并select“iOsunit testing包”

出于某种原因,这个编译错误,所以我改变了“每个configuration中间构build文件path:为我的testing目标$(PROJECT_TEMP_DIR)/ $(configuration)debugging和释放,这使编译工作。

解决这个问题的3个步骤:

  1. 首先删除你的testing目标
  2. select编辑 – >转换 – >目前的Swift语法…并执行转换
  3. 然后添加一个新的testing目标