You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 9.1 Swift4 UITest构建失败:_main undefined问题求助

解决UITest构建时“_main undefined”的问题

Hey there! I’ve run into this exact issue when I was starting out with UI Tests in Xcode too—super frustrating, but there are a few common fixes that usually sort it out. Let’s go through them step by step:

  • 检查测试目标的构建配置
    首先,确认你的UI Test target没有被错误配置成独立可执行文件:

    1. 在Xcode的Project navigator中选中你的UI Test target
    2. 切换到Build Settings标签页
    3. 搜索Mach-O Type,确保它的值是Bundle(而不是Executable)。UI Test是作为测试 bundle 运行的,不需要自己的_main入口点
    4. 搜索Product Name,确保它和主App target的名称区分开,避免构建配置混淆
  • 验证测试类的结构
    确保你的测试代码符合XCTest的规范:

    • 测试类必须继承自XCTestCase
    • 测试方法必须以test开头
      示例代码如下:
    import XCTest
    
    class YourAppUITests: XCTestCase {
        func testPrintHelloWorld() {
            print("Hello world")
            // 若要执行UI操作,需先启动App:
            // let app = XCUIApplication()
            // app.launch()
        }
    }
    

    如果类没有继承XCTestCase,Xcode无法识别它为测试类,会导致构建时找不到正确的入口逻辑。

  • 清理缓存并重启Xcode
    Xcode的缓存偶尔会引发奇怪的构建问题,试试这些操作:

    • 按下Cmd + Shift + K清理当前目标的构建文件夹
    • 按下Cmd + Option + Shift + K清理整个项目的构建缓存
    • 完全退出Xcode(包括后台进程)后重新打开
  • 确认测试目标的宿主依赖
    确保UI Test target正确关联了你的主App:

    1. 选中UI Test target,切换到General标签页
    2. 在Testing区域的Host Application下拉菜单中,选择你的主App目标
      如果这里为空或选择了错误的目标,也会导致链接时找不到必要的入口依赖
  • 检查架构设置
    针对错误中提到的x86_64架构问题:

    1. 在Build Settings中搜索Architectures,确保设置为Standard Architectures (Apple Silicon, x86_64)
    2. 若存在Valid Architectures选项(Xcode 12+默认隐藏),确保包含x86_64和arm64

我当初就是误把UI Test target的Mach-O Type改成了Executable才触发这个错误,改回Bundle就立刻解决了。你可以从第一个排查步骤开始,应该能快速定位问题!

内容的提问来源于stack exchange,提问作者Eric Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:06:25