From 1c9cd05849f21361ab785ddd89df3ff6ea9979ff Mon Sep 17 00:00:00 2001 From: osy Date: Fri, 28 Jul 2023 13:06:55 -0700 Subject: [PATCH] uupdumpapi: fix parse error on some builds --- Source/UUPDump/UUPDetails.swift | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Source/UUPDump/UUPDetails.swift b/Source/UUPDump/UUPDetails.swift index d69e10f..6301601 100644 --- a/Source/UUPDump/UUPDetails.swift +++ b/Source/UUPDump/UUPDetails.swift @@ -33,7 +33,11 @@ struct UUPDetails: Codable { let values = try decoder.container(keyedBy: CodingKeys.self) apiVersion = try values.decode(String.self, forKey: .apiVersion) langList = try values.decode([String].self, forKey: .langList) - langFancyNames = try values.decode([String: String].self, forKey: .langFancyNames) + if langList.isEmpty { + langFancyNames = [:] + } else { + langFancyNames = try values.decode([String: String].self, forKey: .langFancyNames) + } updateInfo = try values.decode(UpdateInfo.self, forKey: .updateInfo) } } @@ -70,9 +74,9 @@ extension UUPDetails { arch = try values.decode(String.self, forKey: .arch) build = try values.decode(String.self, forKey: .build) checkBuild = try values.decode(String.self, forKey: .checkBuild) - sku = try values.decode(Int.self, forKey: .sku) - created = try values.decode(Int.self, forKey: .created) - sha256ready = try values.decode(Bool.self, forKey: .sha256ready) + sku = try values.decodeIfPresent(Int.self, forKey: .sku) ?? 0 + created = try values.decodeIfPresent(Int.self, forKey: .created) ?? 0 + sha256ready = try values.decodeIfPresent(Bool.self, forKey: .sha256ready) ?? false } } }