Adds InstalledExtension

This commit is contained in:
Riley Testut
2020-01-21 16:53:34 -08:00
parent 7fb79f558d
commit e7930b95d0
5 changed files with 191 additions and 66 deletions

View File

@@ -59,6 +59,36 @@ class InstallAppOperation: ResultOperation<InstalledApp>
installedApp.installedDate = Date()
}
var installedExtensions = Set<InstalledExtension>()
if
let bundle = Bundle(url: resignedApp.fileURL),
let directory = bundle.builtInPlugInsURL,
let enumerator = FileManager.default.enumerator(at: directory, includingPropertiesForKeys: nil, options: [.skipsSubdirectoryDescendants])
{
for case let fileURL as URL in enumerator
{
guard let appExtensionBundle = Bundle(url: fileURL) else { continue }
guard let appExtension = ALTApplication(fileURL: appExtensionBundle.bundleURL) else { continue }
let installedExtension: InstalledExtension
if let appExtension = installedApp.appExtensions.first(where: { $0.bundleIdentifier == appExtension.bundleIdentifier })
{
installedExtension = appExtension
}
else
{
installedExtension = InstalledExtension(resignedAppExtension: appExtension, originalBundleIdentifier: appExtension.bundleIdentifier, context: backgroundContext)
installedExtension.installedDate = Date()
}
installedExtensions.insert(installedExtension)
}
}
installedApp.appExtensions = installedExtensions
installedApp.version = resignedApp.version
if let profile = resignedApp.provisioningProfile