Xcode构建失败:模块多@main属性致Command EmitSwiftModule报错
解决Xcode中“'main' attribute can only apply to one type in a module”构建错误
问题原因
你的项目里同时存在两个标记了@main的类型:NiceButtonApps.swift和AppDelegate.swift,Swift规则明确一个模块只能有一个程序入口点(即一个带@main标记的类型),这直接导致了构建失败。
解决步骤
- 打开
NiceButtonApps.swift文件,找到顶部的@main标记,直接删除这一行。因为你的项目基于Storyboard,原本的入口是AppDelegate,添加SwiftUI代码时误引入了带@main的App结构体,这和原有入口冲突了。 - 确认你的SwiftUI代码只保留视图结构体即可,不需要独立的App入口。比如正确的SwiftUI代码结构应该是:
struct NiceButtonView: View { var body: some View { // 你的SwiftUI界面实现代码 } } - 保存修改后,先执行
Command+Shift+K清理构建缓存,再用Command+B重新构建项目,之后即可正常运行。
内容的提问来源于stack exchange,提问作者amara
相关产品推荐
相关产品推荐

