App
次のアプローチを使用して SwiftUI アプリ (Xcode 12.3) を実行しています。
@main
struct ThingsApp: App {
...
}
これは、シミュレーターと私のデバイスの両方で期待どおりに機能します。しかし、プレビューでは機能しません。そこで、エラーが発生します'main' attribute cannot be used in a module that contains top-level code
。
Xcode でゼロからプロジェクトをセットアップすると、このアプローチが機能するため、アプリに何か原因があるはずです。しかし、何が原因でこれが起こるのかを正確に把握する方法はよくわかりません。以下の完全なトレース:
'main' attribute cannot be used in a module that contains top-level code
----------------------------------------
CompileDylibError: Failed to build ThingsApp.swift
Compiling failed: 'main' attribute cannot be used in
a module that contains top-level code
/Users/cg/Library/Developer/Xcode/DerivedData/
Things-bkpepcogttixysdvumdszlfwxfix/Build/
Intermediates.noindex/
Previews/Things/Intermediates.noindex/Things.build/
Debug-iphonesimulator/Things.build/Objects-normal/x86_64/
ThingsApp.2.preview-thunk.swift:8:1: error: 'main'
attribute cannot be used in a module that contains top-level code
@main extension ThingsApp {
^
/Users/cg/Library/Developer/Xcode/DerivedData/
Things-bkpepcogttixysdvumdszlfwxfix/Build/
Intermediates.noindex/
Previews/Things/Intermediates.noindex/
Things.build/
Debug-iphonesimulator/Things.build/
Objects-normal/x86_64/
ThingsApp.2.preview-thunk.swift:1:1: note: top-level code defined in this source file
@_private(sourceFile: "ThingsApp.swift") import Things