我刚刚提交了我的应用程序以供商店审核,并收到了一些包含此错误的崩溃报告
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.")
}
.....
有人知道我是否错过了配置或者为什么会发生这种情况?
您的捆绑扩展名错误。你说的是
self.url(forResource: file, withExtension: nil)
但是从捆绑包中获取此文件的方法是提供
"CountryNumber"
作为 file
值,并提供 "json"
作为 withExtension
值。您没有这样做,因此获取失败。您将需要重写此扩展及其使用。