Moves database + cached apps to app group so they can be accessed by extensions

This commit is contained in:
Riley Testut
2020-09-14 14:31:46 -07:00
parent 88c8d5f0f8
commit b0c36adedb
2 changed files with 16 additions and 2 deletions

View File

@@ -11,6 +11,19 @@ import CoreData
import AltSign
import Roxas
private class PersistentContainer: RSTPersistentContainer
{
override class func defaultDirectoryURL() -> URL
{
guard let sharedDirectoryURL = FileManager.default.altstoreSharedDirectory else { return super.defaultDirectoryURL() }
let databaseDirectoryURL = sharedDirectoryURL.appendingPathComponent("Database")
try? FileManager.default.createDirectory(at: databaseDirectoryURL, withIntermediateDirectories: true, attributes: nil)
return databaseDirectoryURL
}
}
public class DatabaseManager
{
public static let shared = DatabaseManager()
@@ -24,7 +37,7 @@ public class DatabaseManager
private init()
{
self.persistentContainer = RSTPersistentContainer(name: "AltStore", bundle: Bundle(for: DatabaseManager.self))
self.persistentContainer = PersistentContainer(name: "AltStore", bundle: Bundle(for: DatabaseManager.self))
self.persistentContainer.preferredMergePolicy = MergePolicy()
}
}

View File

@@ -219,7 +219,8 @@ public extension InstalledApp
public extension InstalledApp
{
class var appsDirectoryURL: URL {
let appsDirectoryURL = FileManager.default.applicationSupportDirectory.appendingPathComponent("Apps")
let baseDirectory = FileManager.default.altstoreSharedDirectory ?? FileManager.default.applicationSupportDirectory
let appsDirectoryURL = baseDirectory.appendingPathComponent("Apps")
do { try FileManager.default.createDirectory(at: appsDirectoryURL, withIntermediateDirectories: true, attributes: nil) }
catch { print(error) }