import Foundation
import SwiftData
@Model class Person {
var name: String
init(name: String) {
self.name = name
}
}
func main() {
print(Bundle.main.bundleIdentifier ?? "") // com.northbronson.DataDemo
print(Bundle.main.object(forInfoDictionaryKey: "CFBundleName") ?? "") // DataDemo
let configuration = ModelConfiguration(
isStoredInMemoryOnly: true,
allowsSave: false
)
print(configuration.url) // file:///dev/null
// let _ = configuration.url.startAccessingSecurityScopedResource()
do {
let _ = try ModelContainer(
for: Person.self,
configurations: configuration
)
} catch {
// configuration.url.stopAccessingSecurityScopedResource()
print(error)
}
}
main()
// com.northbronson.DataDemo
// DataDemo
// file:///dev/null
// error: addPersistentStoreWithType:configuration:URL:options:error: returned error NSCocoaErrorDomain (257)
// CoreData: error: addPersistentStoreWithType:configuration:URL:options:error: returned error NSCocoaErrorDomain (257)
// error: userInfo:
// CoreData: error: userInfo:
// error: NSFilePath : /dev/null
// CoreData: error: NSFilePath : /dev/null
// error: storeType: SQLite
// CoreData: error: storeType: SQLite
// error: configuration: (null)
// CoreData: error: configuration: (null)
// error: URL: file:///dev/null/
// CoreData: error: URL: file:///dev/null/
// CoreData: annotation: options:
// CoreData: annotation: NSMigratePersistentStoresAutomaticallyOption : 1
// CoreData: annotation: NSPersistentHistoryTrackingKey : 1
// CoreData: annotation: NSInferMappingModelAutomaticallyOption : 1
// CoreData: annotation: NSPersistentStoreRemoteChangeNotificationOptionKey : 1
// CoreData: annotation: NSReadOnlyPersistentStoreOption : 1
// error: <NSPersistentStoreCoordinator: 0x600000960180>: Attempting recovery from error encountered during addPersistentStore: 0x600002960f00 Error Domain=NSCocoaErrorDomain Code=257 "The file “null” couldn’t be opened because you don’t have permission to view it." UserInfo={NSFilePath=/dev/null}
// CoreData: error: <NSPersistentStoreCoordinator: 0x600000960180>: Attempting recovery from error encountered during addPersistentStore: 0x600002960f00 Error Domain=NSCocoaErrorDomain Code=257 "The file “null” couldn’t be opened because you don’t have permission to view it." UserInfo={NSFilePath=/dev/null}
// error: Store failed to load. <NSPersistentStoreDescription: 0x600002960db0> (type: SQLite, url: file:///dev/null/) with error = Error Domain=NSCocoaErrorDomain Code=257 "The file “null” couldn’t be opened because you don’t have permission to view it." UserInfo={NSFilePath=/dev/null} with userInfo {
// NSFilePath = "/dev/null";
// }
// CoreData: error: Store failed to load. <NSPersistentStoreDescription: 0x600002960db0> (type: SQLite, url: file:///dev/null/) with error = Error Domain=NSCocoaErrorDomain Code=257 "The file “null” couldn’t be opened because you don’t have permission to view it." UserInfo={NSFilePath=/dev/null} with userInfo {
// NSFilePath = "/dev/null";
// }
// Unresolved error loading container Error Domain=NSCocoaErrorDomain Code=257 "The file “null” couldn’t be opened because you don’t have permission to view it." UserInfo={NSFilePath=/dev/null}
// SwiftDataError(_error: SwiftData.SwiftDataError._Error.loadIssueModelContainer)
// Program ended with exit code: 0
Was anyone able to get this working with a ModelConfiguration set to isStoredInMemoryOnly? I followed the steps to add CREATE_INFOPLIST_SECTION_IN_BINARY and I see the values being read correctly from Bundle… then this error throws up… I'm trying the startAccessingSecurityScopedResource that I read about… no luck. Hmm… AFAIK this is just a plain vanilla macOS command line tool (other than injecting an info.plist) with no funky sandbox behavior going on. Any ideas what else to try or where else to look?