Xcode 12 & SwiftUI:无法在此文件中预览 — 更新预览失败

Xcode 12 & SwiftUI: Cannot preview in this file — Failed to update preview

Xcode12 上的预览似乎停止工作了!尝试预览 SwiftUI 文件模板并收到以下错误。任何想法如何解决这一问题?尝试清理构建文件夹、删除派生数据并重新启动 Xcode 无济于事!

卡塔琳娜 10.15.6.

RemoteHumanReadableError: Failed to update preview.

The preview process appears to have crashed.

Error encountered when sending 'prepare' message to agent.

==================================

|  RemoteHumanReadableError: The operation couldn’t be completed. (BSServiceConnectionErrorDomain error 3.)
|  
|  BSServiceConnectionErrorDomain (3):
|  ==BSErrorCodeDescription: OperationFailed

我正在尝试预览的代码(来自 SwiftUI 新文件模板):

import SwiftUI

struct SwiftUIView: View {
    var body: some View {
        Text("Hello, World!")
    }
}

struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        SwiftUIView()
    }
}

显然这是 Firestore 的错误,最有可能的原因是:XCode 12 Preview Crashes when adding Firebase SDK Swift UI 2.0。此时最好的解决方案是调用 pod update 应该可以解决问题。我验证了 Xcode 12,iOS 13+。

我在更新 Firebase Analytics(至 v6.33.0)时遇到了同样的问题。注释掉以下行修复它。

FirebaseApp.configure()

如果您的 SwiftUIViewObservableObject 用作 environmentObject,试试这个:

struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        SwiftUIView().environmentObject(YourObservableObjectClass())
    }
}

如果你使用 SwiftUI (ObservableObject, @EnvironmentObject)

添加到预览

.environmentObject(ModelData())

--

struct LandmarkDetail_Previews: PreviewProvider {
        static var previews: some View {
    
            LandmarkDetail(landmark: ModelData().landmarks[1])
                .environmentObject(ModelData())
        }
    }

我的模型数据

final class ModelData:ObservableObject
{
   @Published var landmarks: [Landmark] = load("landmarkData.json")
}

大家好。 我设法解决了这个问题。 注释 didFinishLaunchingWithOptions 方法中的所有内容就足够了,预览 SwiftUI 将起作用。