当我开始我的项目时,我收到了这个错误。我该如何解决这个问题。我正在尝试在没有 Apollo SDK 的情况下使用 Graphql。
错误:
无法初始化 Amplify,出现配置错误:AWSS3StoragePlugin。AWSS3StoragePlugin 无法在
Amplify.configure()
之后添加。
恢复建议:调用Amplify.configure()
后不要添加插件。
/Users/ufukkosker/Library/Developer/Xcode/DerivedData/ArtApp-xxxxxxhzyxxxxx/SourcePackages/checkouts/amplify-swift/Amplify/Categories/DataStore/DataStoreCategory.swift:21:致命错误:未配置数据存储类别。在类别上使用任何方法之前调用 Amplify.configure()。
艺术应用:
import SwiftUI
import UIKit
import Amplify
import AWSS3StoragePlugin
class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
let storagePlugin = AWSS3StoragePlugin()
do {
try Amplify.add(plugin: storagePlugin)
try Amplify.configure()
print("Amplify configured with storage plugin")
} catch {
print("Failed to initialize Amplify with \(error)")
}
return true
}
}
@main
struct ArtApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
放大数据存储配置:
import Amplify
import AWSS3StoragePlugin
final class AmplifyDataStoreConfig {
static var shared = AmplifyDataStoreConfig()
private init() {
}
func fetchArttist() async {
do {
let items = try await Amplify.DataStore.query(Artist.self)
for item in items {
print("artist id: \(item.id)")
}
} catch let error as DataStoreError {
print("Error querying items: \(error)")
} catch {
print("Unexpected error: \(error)")
}
}
}
启动视图:
struct LaunchView: View {
@State var isAnimating: Bool = false
@State var isPresent: Bool = false
var body: some View {
HStack(spacing: 0) {
ZStack(alignment: .trailing) {
Rectangle()
.foregroundColor(.artOrangeLight)
.frame(width: 128, height: 128)
.offset(y: isAnimating ? .zero : -UIScreen.main.bounds.height)
.animation(.spring().delay(0.5), value: isAnimating)
Text("art")
.foregroundColor(.artieLogoText)
.font(.custom(.gothamLight, size: 90))
.offset(y: isAnimating ? .zero : -UIScreen.main.bounds.height)
.animation(.spring().delay(1), value: isAnimating)
}
Text("ie")
.foregroundColor(.artLogoText)
.font(.custom(.gothamLight, size: 90))
.offset(x: isAnimating ? .zero : UIScreen.main.bounds.width)
.animation(.spring().delay(1.5), value: isAnimating)
}
.onAppear{
isAnimating = true
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
isPresent = true
}
Task {
await AmplifyDataStoreConfig.shared.fetchArttist()
}
}
.fullScreenCover(isPresented: $isPresent) {
OnboardingView()
}
}
}
检查
awsconfiguration.json
和amplifyconfiguration.json
文件是否配置正确。