diff --git a/AltStoreCore/Model/DatabaseManager.swift b/AltStoreCore/Model/DatabaseManager.swift index d351002d..cee2fa0b 100644 --- a/AltStoreCore/Model/DatabaseManager.swift +++ b/AltStoreCore/Model/DatabaseManager.swift @@ -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() } } diff --git a/AltStoreCore/Model/InstalledApp.swift b/AltStoreCore/Model/InstalledApp.swift index d9457df5..ca542ae9 100644 --- a/AltStoreCore/Model/InstalledApp.swift +++ b/AltStoreCore/Model/InstalledApp.swift @@ -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) }