Use App Group container for documents and caches
This commit is contained in:
parent
446736851f
commit
8ede1ed3d4
|
@ -97,7 +97,7 @@ class AppConstants {
|
||||||
private static let fileName = "Debug.log"
|
private static let fileName = "Debug.log"
|
||||||
|
|
||||||
static var fileURL: URL {
|
static var fileURL: URL {
|
||||||
return FileManager.default.userURL(for: .cachesDirectory, appending: fileName)
|
return GroupConstants.App.cachesURL.appendingPathComponent(fileName)
|
||||||
}
|
}
|
||||||
|
|
||||||
private static let console: ConsoleDestination = {
|
private static let console: ConsoleDestination = {
|
||||||
|
|
|
@ -53,6 +53,25 @@ class GroupConstants {
|
||||||
|
|
||||||
static let tunnelIdentifier = "com.algoritmico.macos.Passepartout.Tunnel"
|
static let tunnelIdentifier = "com.algoritmico.macos.Passepartout.Tunnel"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
private static var containerURL: URL {
|
||||||
|
guard let url = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: appGroup) else {
|
||||||
|
fatalError("Unable to access App Group container")
|
||||||
|
}
|
||||||
|
return url
|
||||||
|
}
|
||||||
|
|
||||||
|
static let documentsURL: URL = {
|
||||||
|
let url = containerURL.appendingPathComponent("Documents", isDirectory: true)
|
||||||
|
try? FileManager.default.createDirectory(at: url, withIntermediateDirectories: true, attributes: nil)
|
||||||
|
return url
|
||||||
|
}()
|
||||||
|
|
||||||
|
static let cachesURL: URL = {
|
||||||
|
let url = containerURL.appendingPathComponent("Library/Caches", isDirectory: true)
|
||||||
|
try? FileManager.default.createDirectory(at: url, withIntermediateDirectories: true, attributes: nil)
|
||||||
|
return url
|
||||||
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
class VPN {
|
class VPN {
|
||||||
|
|
|
@ -58,7 +58,11 @@ class ConnectionService: Codable {
|
||||||
var directory: String? = nil
|
var directory: String? = nil
|
||||||
|
|
||||||
var rootURL: URL {
|
var rootURL: URL {
|
||||||
return FileManager.default.userURL(for: .documentDirectory, appending: directory)
|
var url = GroupConstants.App.documentsURL
|
||||||
|
if let directory = directory {
|
||||||
|
url.appendPathComponent(directory)
|
||||||
|
}
|
||||||
|
return url
|
||||||
}
|
}
|
||||||
|
|
||||||
private var providersURL: URL {
|
private var providersURL: URL {
|
||||||
|
|
|
@ -36,7 +36,7 @@ class TransientStore {
|
||||||
static let shared = TransientStore()
|
static let shared = TransientStore()
|
||||||
|
|
||||||
private static var serviceURL: URL {
|
private static var serviceURL: URL {
|
||||||
return FileManager.default.userURL(for: .documentDirectory, appending: AppConstants.Store.serviceFilename)
|
return GroupConstants.App.documentsURL.appendingPathComponent(AppConstants.Store.serviceFilename)
|
||||||
}
|
}
|
||||||
|
|
||||||
let service: ConnectionService
|
let service: ConnectionService
|
||||||
|
|
|
@ -75,7 +75,7 @@ class InfrastructureFactory {
|
||||||
}
|
}
|
||||||
self.bundle = bundle
|
self.bundle = bundle
|
||||||
|
|
||||||
cachePath = FileManager.default.userURL(for: .cachesDirectory, appending: nil)
|
cachePath = GroupConstants.App.cachesURL
|
||||||
cache = [:]
|
cache = [:]
|
||||||
lastUpdate = [:]
|
lastUpdate = [:]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue