Swift - 在捆绑包中找不到文件

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

我刚刚提交了我的应用程序以供商店审核,并收到了一些包含此错误的崩溃报告

Fatal error: Failed to locate CountryNumbers.json in bundle.

在本地运行期间,通过调试和发布(以及模拟器和真实设备),应用程序可以正常工作。我已经检查了副本捆绑资源,文件就在那里。

我在变量静态初始化期间读取文件

    static let allCountries: [CPData] = Bundle.main.decode("CountryNumbers.json")

和解码扩展代码

extension Bundle {
    func decode<T: Decodable>(_ file: String) -> T {
        guard let url = self.url(forResource: file, withExtension: nil) else {
            fatalError("Failed to locate \(file) in bundle.")
        }
     .....

有人知道我是否错过了配置或者为什么会发生这种情况?

swift xcode
1个回答
0
投票

您的捆绑扩展名错误。你说的是

self.url(forResource: file, withExtension: nil)

但是从捆绑包中获取此文件的方法是提供

"CountryNumber"
作为
file
值,并提供
"json"
作为
withExtension
值。您没有这样做,因此获取失败。您将需要重写此扩展及其使用。

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