Verifies Sources don’t contain duplicate bundle IDs

AltStore assumes all apps have unique bundle IDs per source. Weird bugs can occur when this is not the case (such as merging multiple store listings into one), so we now verify upfront whether source contains duplicate bundle IDs before saving.
This commit is contained in:
Riley Testut
2022-11-22 13:02:19 -06:00
committed by Magesh K
parent db57de28d6
commit 2017584da4
3 changed files with 73 additions and 9 deletions

View File

@@ -415,10 +415,13 @@ extension AppManager
switch result
{
case .success(let source): fetchedSources.insert(source)
case .failure(let error):
case .failure(let nsError as NSError):
let source = managedObjectContext.object(with: source.objectID) as! Source
source.error = (error as NSError).sanitizedForSerialization()
let title = String(format: NSLocalizedString("Unable to Refresh “%@” Source", comment: ""), source.name)
let error = nsError.withLocalizedTitle(title)
errors[source] = error
source.error = error.sanitizedForSerialization()
}
dispatchGroup.leave()