我正在尝试访问我在 Xcode 15.4 上使用 WidgetKit 扩展构建的应用程序上的共享商店,它在模拟器上运行得很好,但一旦我将其存档并将其安装在我的实际 iPhone 上以进行测试,它崩溃了。崩溃日志指向我编写的一个函数,专门获取设备上共享存储的 URL。它只返回 nil。
这就是所说的功能
public extension URL {
/// Returns a URL for the given app group and database pointing to the sqlite database.
static func storeURL(databaseName: String) -> URL? {
guard let fileContainer = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.groupname.shared") else {
fatalError("Shared file container could not be created.")
}
return fileContainer.appendingPathComponent("\(databaseName)")
}
}
处理加载共享存储的代码:
lazy var container: NSPersistentContainer = {
let storeURL = URL.storeURL(databaseName: "StoredData")
let storeDescription = NSPersistentStoreDescription(url: storeURL!)
let container = NSPersistentContainer(name: "StoredData")
container.persistentStoreDescriptions = [storeDescription]
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
// fatalError("Unresolved error \(error), \(error.userInfo)")
Alert(title: Text("Unable to load items"), message: Text("\(error.userInfo)"))
}
})
return container
}()
我不知道该怎么办。我已经验证应用程序组名称没有拼写错误(这对我来说应该是显而易见的,因为它在模拟器上工作),但仍然没有运气
您是否尝试过将
.sqlite
添加到 databaseName: "StoredData"
中?