@@ -272,29 +272,43 @@ private func reloadCertificatesAndEnsureSelection() {
272272 let mp = try Data ( contentsOf: mpURL)
273273 let pw = ( try ? String ( contentsOf: pwURL, encoding: . utf8) ) ? . trimmingCharacters ( in: . whitespacesAndNewlines) ?? " "
274274
275- let parsed = try await CertChecker . checkCert (
276- mobileProvision: mp,
277- mobileProvisionFilename: " profile.mobileprovision " ,
278- p12: p12,
279- p12Filename: " certificate.p12 " ,
280- password: pw
281- )
282-
283- let status = ( parsed [ " certificate " ] as? [ String : String ] ) ? [ " status " ] ??
284- ( parsed [ " certificate_matching_status " ] as? String ) ??
285- " Unknown "
286-
287- await MainActor . run {
288- certStatuses [ certCopy. folderName] = status
275+ // 1) show cached immediately (if available)
276+ if let cached = CertChecker . cachedResult ( p12Data: p12, mpData: mp, password: pw) {
277+ let status = ( cached [ " certificate " ] as? [ String : String ] ) ? [ " status " ]
278+ ?? ( cached [ " certificate_matching_status " ] as? String )
279+ ?? ( cached [ " overall_status " ] as? String )
280+ ?? " Unknown "
281+ await MainActor . run {
282+ certStatuses [ certCopy. folderName] = status + " (cached) "
283+ }
284+ }
285+
286+ // 2) then fetch fresh and update (awaits network)
287+ do {
288+ let parsed = try await CertChecker . checkCert (
289+ mobileProvision: mp,
290+ mobileProvisionFilename: " profile.mobileprovision " ,
291+ p12: p12,
292+ p12Filename: " certificate.p12 " ,
293+ password: pw
294+ )
295+
296+ let status = ( parsed [ " certificate " ] as? [ String : String ] ) ? [ " status " ]
297+ ?? ( parsed [ " certificate_matching_status " ] as? String )
298+ ?? ( parsed [ " overall_status " ] as? String )
299+ ?? " Unknown "
300+
301+ await MainActor . run {
302+ certStatuses [ certCopy. folderName] = status
303+ }
304+ } catch {
305+ await MainActor . run {
306+ certStatuses [ certCopy. folderName] = " Check Error "
307+ }
289308 }
290- } catch {
291- await MainActor . run {
292- certStatuses [ certCopy. folderName] = " Check Error "
293- }
294309 }
295- }
310+ }
296311 }
297- }
298312 private func loadExpiries( ) {
299313 for cert in customCertificates {
300314 let folderName = cert. folderName
@@ -524,3 +538,4 @@ struct AddCertificateView: View {
524538}
525539
526540
541+
0 commit comments