mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
Uses URL schemes to determine whether apps are installed
This commit is contained in:
@@ -84,29 +84,3 @@ extension App
|
||||
return NSFetchRequest<App>(entityName: "App")
|
||||
}
|
||||
}
|
||||
|
||||
extension App
|
||||
{
|
||||
class var appsDirectoryURL: URL {
|
||||
let appsDirectoryURL = FileManager.default.applicationSupportDirectory.appendingPathComponent("Apps")
|
||||
|
||||
do { try FileManager.default.createDirectory(at: appsDirectoryURL, withIntermediateDirectories: true, attributes: nil) }
|
||||
catch { print(error) }
|
||||
|
||||
return appsDirectoryURL
|
||||
}
|
||||
|
||||
var directoryURL: URL {
|
||||
let directoryURL = App.appsDirectoryURL.appendingPathComponent(self.identifier)
|
||||
|
||||
do { try FileManager.default.createDirectory(at: directoryURL, withIntermediateDirectories: true, attributes: nil) }
|
||||
catch { print(error) }
|
||||
|
||||
return directoryURL
|
||||
}
|
||||
|
||||
var ipaURL: URL {
|
||||
let ipaURL = self.directoryURL.appendingPathComponent("App.ipa")
|
||||
return ipaURL
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ class InstalledApp: NSManagedObject
|
||||
@NSManaged var isBeta: Bool
|
||||
|
||||
/* Relationships */
|
||||
@NSManaged private(set) var app: App?
|
||||
@NSManaged private(set) var app: App!
|
||||
|
||||
private override init(entity: NSEntityDescription, insertInto context: NSManagedObjectContext?)
|
||||
{
|
||||
@@ -50,3 +50,48 @@ extension InstalledApp
|
||||
return NSFetchRequest<InstalledApp>(entityName: "InstalledApp")
|
||||
}
|
||||
}
|
||||
|
||||
extension InstalledApp
|
||||
{
|
||||
var openAppURL: URL {
|
||||
// Don't use the actual bundle ID yet since we're hardcoding support for the first apps in AltStore.
|
||||
let openAppURL = URL(string: "altstore-" + self.app.identifier + "://")!
|
||||
return openAppURL
|
||||
}
|
||||
}
|
||||
|
||||
extension InstalledApp
|
||||
{
|
||||
class var appsDirectoryURL: URL {
|
||||
let appsDirectoryURL = FileManager.default.applicationSupportDirectory.appendingPathComponent("Apps")
|
||||
|
||||
do { try FileManager.default.createDirectory(at: appsDirectoryURL, withIntermediateDirectories: true, attributes: nil) }
|
||||
catch { print(error) }
|
||||
|
||||
return appsDirectoryURL
|
||||
}
|
||||
|
||||
class func ipaURL(for app: App) -> URL
|
||||
{
|
||||
let ipaURL = self.directoryURL(for: app).appendingPathComponent("App.ipa")
|
||||
return ipaURL
|
||||
}
|
||||
|
||||
class func directoryURL(for app: App) -> URL
|
||||
{
|
||||
let directoryURL = InstalledApp.appsDirectoryURL.appendingPathComponent(app.identifier)
|
||||
|
||||
do { try FileManager.default.createDirectory(at: directoryURL, withIntermediateDirectories: true, attributes: nil) }
|
||||
catch { print(error) }
|
||||
|
||||
return directoryURL
|
||||
}
|
||||
|
||||
var directoryURL: URL {
|
||||
return InstalledApp.directoryURL(for: self.app)
|
||||
}
|
||||
|
||||
var ipaURL: URL {
|
||||
return InstalledApp.ipaURL(for: self.app)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user