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

移除Objective-C桥接文件后编译失败:UIApplicationMain不在作用域中

问题原因及解决办法

报错原因

你遇到的「Cannot find 'UIApplicationMain' in scope」错误,本质是UIApplicationMain属于UIKit框架的函数。之前桥接文件里的#import <StoreKit/StoreKit.h>存在时,Xcode会默认让Swift代码隐式访问部分系统框架符号;但当你注释掉这行或移除桥接文件后,你的main.swift没有显式导入UIKit,自然找不到这个函数。

彻底清除Objective-C残留的步骤

  1. 给main.swift添加显式导入
    在main.swift文件最顶部加上:

    import UIKit
    

    这是解决编译错误的关键一步,确保UIKit的符号能被正常访问。

  2. 移除桥接文件配置
    进入 Target -> Build Settings,找到Objective-C Bridging Header项,清空对应的路径值,直接删除该配置也可。

  3. 删除桥接文件实体
    在项目导航栏里找到你的桥接文件(比如XXX-Bridging-Header.h),右键选择「Move to Trash」,彻底从项目和磁盘中删除。

  4. 检查并清理其他OC残留

    • 进入 Target -> Build Phases -> Compile Sources,确认里面没有.m/.mm格式的Objective-C文件,有则直接删除。
    • 打开Info.plist,检查是否有旧的OC类名引用(比如非Storyboard相关的OC类配置),如有则替换为对应的Swift类。
  5. 清理缓存重新编译
    按下Command+Shift+K清理Build Folder,再按Command+Option+Shift+K清除DerivedData,之后重新编译项目。

内容的提问来源于stack exchange,提问作者Reinhard Männer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:15:34