Xcode 8 Beta - 转换为当前 Swift 语法失败:找不到测试主机
Xcode 8 Beta - Convert to Current Swift Syntax Failed: Could not find test host
我在尝试使用 Xcode 8 的转换向导时收到一条错误消息。
在尝试重新启动、下载新代码并删除我的 DerivedData 文件后,我无法避免此错误:
Convert to Current Swift Syntax Failed: Could not find test host
我已经尝试了两个选项,它们是:Swift 2.3 和 Swift 3。在我 select 一个版本之后,我立即得到了那个错误。
这是错误的屏幕截图:
这对我有用:
- Select 左侧浏览器中的 Xcode 项目。
- 在项目的
General
选项卡中单击您的测试目标。
- 公开"Testing"。在我的项目中,"Host Application" 下拉按钮是空白的。 Select 您合适的主机应用程序。
- 现在尝试构建您的测试目标。如果成功,那么转换语法也应该如此。
我在安装 Xcode 8 beta 后遇到了这个问题,所以我认为这是相关的。
图片来自@karthikkck
+1 伊鲁夫卡普拉
或者,使用文本编辑器从您的 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;
};
我发现这个问题很容易解决,只需编辑您的方案并禁用测试即可。
并再次运行转换。
我花了一些时间才找到 "Host Application" 下拉菜单 在 iluvcapra 的其他非常有用的答案中提到。
所以这就是他的意思:
您可以在此处找到下拉菜单。 Select 你的主要目标。
在我的例子中,我删除了我的测试目标,然后使用下面的 + 目标重新添加它并选择 "iOs Unit Testing Bundle"
出于某种原因,这出现了编译错误,因此我将“每个配置的中间构建文件路径:我的测试目标更改为 $(PROJECT_TEMP_DIR)/$(CONFIGURATION) 用于调试和发布. 这允许编译工作。
通过 3 个步骤解决此问题:
- 首先删除你的测试目标
- select 编辑 -> 转换 -> 到当前 Swift 语法...并执行转换
- 然后添加一个新的测试目标
请尝试以下步骤:
- Select 您的项目在 Xcode 的左侧。
- 转到目标并select您的项目测试。
- Select 常规选项卡和 select 主机应用程序下拉菜单并选择您的主机应用程序。
- 转换或运行您的项目。
尝试这些步骤对我有用。
我在尝试使用 Xcode 8 的转换向导时收到一条错误消息。 在尝试重新启动、下载新代码并删除我的 DerivedData 文件后,我无法避免此错误:
Convert to Current Swift Syntax Failed: Could not find test host
我已经尝试了两个选项,它们是:Swift 2.3 和 Swift 3。在我 select 一个版本之后,我立即得到了那个错误。
这是错误的屏幕截图:
这对我有用:
- Select 左侧浏览器中的 Xcode 项目。
- 在项目的
General
选项卡中单击您的测试目标。 - 公开"Testing"。在我的项目中,"Host Application" 下拉按钮是空白的。 Select 您合适的主机应用程序。
- 现在尝试构建您的测试目标。如果成功,那么转换语法也应该如此。
我在安装 Xcode 8 beta 后遇到了这个问题,所以我认为这是相关的。
图片来自@karthikkck
+1 伊鲁夫卡普拉
或者,使用文本编辑器从您的 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;
};
我发现这个问题很容易解决,只需编辑您的方案并禁用测试即可。
并再次运行转换。
我花了一些时间才找到 "Host Application" 下拉菜单 在 iluvcapra 的其他非常有用的答案中提到。
所以这就是他的意思:
您可以在此处找到下拉菜单。 Select 你的主要目标。
在我的例子中,我删除了我的测试目标,然后使用下面的 + 目标重新添加它并选择 "iOs Unit Testing Bundle"
出于某种原因,这出现了编译错误,因此我将“每个配置的中间构建文件路径:我的测试目标更改为 $(PROJECT_TEMP_DIR)/$(CONFIGURATION) 用于调试和发布. 这允许编译工作。
通过 3 个步骤解决此问题:
- 首先删除你的测试目标
- select 编辑 -> 转换 -> 到当前 Swift 语法...并执行转换
- 然后添加一个新的测试目标
请尝试以下步骤:
- Select 您的项目在 Xcode 的左侧。
- 转到目标并select您的项目测试。
- Select 常规选项卡和 select 主机应用程序下拉菜单并选择您的主机应用程序。
- 转换或运行您的项目。
尝试这些步骤对我有用。