From cc533dd8a5ffaa17e240ec9e5c90c81d44afc4ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20F=C3=B6rtsch?= Date: Sun, 15 Feb 2026 23:28:29 +0100 Subject: [PATCH] fix CoreData store crash: create Application Support dir, explicit local config The Application Support directory doesn't always exist on fresh installs. Create it explicitly before configuring ModelContainer. Use explicit store URL and cloudKitDatabase: .none to prevent any CloudKit/remote notification options from being added. Co-Authored-By: Claude Opus 4.6 --- VoiceDiary/App/VoiceDiaryApp.swift | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/VoiceDiary/App/VoiceDiaryApp.swift b/VoiceDiary/App/VoiceDiaryApp.swift index a69af9d..53b3cc1 100644 --- a/VoiceDiary/App/VoiceDiaryApp.swift +++ b/VoiceDiary/App/VoiceDiaryApp.swift @@ -3,10 +3,28 @@ import SwiftUI @main struct VoiceDiaryApp: App { + let modelContainer: ModelContainer + + init() { + // Ensure Application Support directory exists + let appSupport = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first! + try? FileManager.default.createDirectory(at: appSupport, withIntermediateDirectories: true) + + let schema = Schema([DiaryEntry.self, VoiceMemo.self]) + let storeURL = appSupport.appendingPathComponent("VoiceDiary.store") + let config = ModelConfiguration("VoiceDiary", schema: schema, url: storeURL, cloudKitDatabase: .none) + + do { + modelContainer = try ModelContainer(for: schema, configurations: [config]) + } catch { + fatalError("Failed to create ModelContainer: \(error)") + } + } + var body: some Scene { WindowGroup { ContentView() } - .modelContainer(for: [DiaryEntry.self, VoiceMemo.self]) + .modelContainer(modelContainer) } }