Swift - 无法访问应用程序组 storeURL

问题描述 投票:0回答:1

我正在尝试访问我在 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
}()

我不知道该怎么办。我已经验证应用程序组名称没有拼写错误(这对我来说应该是显而易见的,因为它在模拟器上工作),但仍然没有运气

swift database core-data
1个回答
0
投票

您是否尝试过将

.sqlite
添加到
databaseName: "StoredData"
中?

© www.soinside.com 2019 - 2024. All rights reserved.