当我尝试使用 Xcode 8 的转换向导时收到一条错误消息。在尝试重新启动、下载新代码并删除我的 DerivedData 文件后,我无法逃脱此错误:
转换为当前 Swift 语法失败:找不到测试主机
我已经尝试了这两个选项:Swift 2.3 和 Swift 3。选择一个版本后,我立即收到该错误。
这是错误的屏幕截图:
+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;
};
在我的情况下,我删除了我的测试目标,然后使用下面的目标重新添加它并选择“iOs Unit Testing Bundle”
出于某种原因,这出现了编译错误,因此我将“每个配置的中间构建文件路径:我的测试目标的调试和发布都更改为 $(PROJECT_TEMP_DIR)/$(CONFIGURATION)。这允许编译工作。
通过 3 个步骤解决此问题: