[Xcode]よくあるエラー。Undefined symbols for architecture i386 …

何日もデバックしたのに、すっごい単純なエラーだった。
アプリ開発をしていてそんな経験をしたことがある人は少なくないと思います。

エラー内容

Undefined symbols for architecture i386:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

内容としては、”中心となるmain関数(main.swift)がありませんよ”ということです。
普段プロジェクトを立ち上げるとAppDelegate.swiftのインポート文とclassの間に「@UIApplicationMain」という”main関数”の自動生成文が記述される訳ですが、何かの拍子に消してしまったりするとこのエラーが出てきます。

解決方法

解決方法
import UIKit
@UIApplicationMain

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

このように、「@UIApplicationMain」を記述する。
または、自分で”main.swift”というファイルを作る。

このどちらかになります。

参考

Swift での main 関数の実装方法と起動時引数の扱い方ez-net.jp

また、もう一つのエラーである。

clang: error: linker command failed with exit code 1 (use -v to see invocation)

これは、上記のエラーを直すと解消されるはずですが、もし、解決しないようであれば

Xcode -> Product > Clean

をして、再ビルドし直すと解決すると思います。


こんなエラーで何日もかかるとは思わなかった。
よくよく考えて見れば、ちゃんとエラー文読めばよかったなと…

コメントを残す