mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-18 03:03:31 +01:00
Clean up SideJITServer Implementation
This commit is contained in:
@@ -1503,27 +1503,27 @@ private extension MyAppsViewController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func enableJIT(for installedApp: InstalledApp)
|
func enableJIT(for installedApp: InstalledApp) {
|
||||||
{
|
|
||||||
|
|
||||||
let sidejitenabled = UserDefaults.standard.sidejitenable
|
let sidejitenabled = UserDefaults.standard.sidejitenable
|
||||||
|
|
||||||
if #unavailable(iOS 17) {
|
if #unavailable(iOS 17), !sidejitenabled {
|
||||||
guard minimuxerStatus else { return }
|
guard minimuxerStatus else { return }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if #available(iOS 17, *), !sidejitenabled {
|
if #available(iOS 17, *), !sidejitenabled {
|
||||||
ToastView(error: (OperationError.tooNewError as NSError).withLocalizedTitle("No iOS 17 On Device JIT!"), opensLog: true).show(in: self)
|
let error = OperationError.tooNewError as NSError
|
||||||
AppManager.shared.log(OperationError.tooNewError, operation: .enableJIT, app: installedApp)
|
let localizedError = error.withLocalizedTitle("No iOS 17 On Device JIT!")
|
||||||
|
|
||||||
|
ToastView(error: localizedError, opensLog: true).show(in: self)
|
||||||
|
AppManager.shared.log(error, operation: .enableJIT, app: installedApp)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
AppManager.shared.enableJIT(for: installedApp) { result in
|
AppManager.shared.enableJIT(for: installedApp) { result in
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
switch result
|
switch result {
|
||||||
{
|
case .success:
|
||||||
case .success: break
|
break
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
ToastView(error: error, opensLog: true).show(in: self)
|
ToastView(error: error, opensLog: true).show(in: self)
|
||||||
AppManager.shared.log(error, operation: .enableJIT, app: installedApp)
|
AppManager.shared.log(error, operation: .enableJIT, app: installedApp)
|
||||||
|
|||||||
@@ -53,13 +53,15 @@ final class EnableJITOperation<Context: EnableJITContext>: ResultOperation<Void>
|
|||||||
guard let installedApp = self.context.installedApp else {
|
guard let installedApp = self.context.installedApp else {
|
||||||
return self.finish(.failure(OperationError.invalidParameters("EnableJITOperation.main: self.context.installedApp is nil")))
|
return self.finish(.failure(OperationError.invalidParameters("EnableJITOperation.main: self.context.installedApp is nil")))
|
||||||
}
|
}
|
||||||
if #available(iOS 17, *) {
|
|
||||||
let sideJITenabled = UserDefaults.standard.sidejitenable
|
let userdefaults = UserDefaults.standard
|
||||||
let SideJITIP = UserDefaults.standard.textInputSideJITServerurl ?? ""
|
|
||||||
|
if #available(iOS 17, *), userdefaults.sidejitenable {
|
||||||
|
let SideJITIP = userdefaults.textInputSideJITServerurl ?? "http://sidejitserver._http._tcp.local:8080"
|
||||||
|
|
||||||
if sideJITenabled {
|
if sideJITenabled {
|
||||||
installedApp.managedObjectContext?.perform {
|
installedApp.managedObjectContext?.perform {
|
||||||
EnableJITSideJITServer(serverurl: SideJITIP, installedapp: installedApp) { result in
|
EnableJITSideJITServer(serverurl: URL(string: SideJITIP)!, installedapp: installedApp) { result in
|
||||||
switch result {
|
switch result {
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
switch error {
|
switch error {
|
||||||
@@ -80,7 +82,7 @@ final class EnableJITOperation<Context: EnableJITContext>: ResultOperation<Void>
|
|||||||
}
|
}
|
||||||
case .success():
|
case .success():
|
||||||
self.finish(.success(()))
|
self.finish(.success(()))
|
||||||
print("Thank you for using this, it was made by Stossy11 and tested by trolley or sniper1239408")
|
print("JIT Enabled Successfully :3 (code made by stossy11)")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
@@ -107,48 +109,45 @@ final class EnableJITOperation<Context: EnableJITContext>: ResultOperation<Void>
|
|||||||
}
|
}
|
||||||
|
|
||||||
@available(iOS 17, *)
|
@available(iOS 17, *)
|
||||||
func EnableJITSideJITServer(serverurl: String, installedapp: InstalledApp, completion: @escaping (Result<Void, SideJITServerErrorType>) -> Void) {
|
func enableJITSideJITServer(serverURL: URL, installedApp: InstalledApp, completion: @escaping (Result<Void, SideJITServerErrorType>) -> Void) {
|
||||||
guard let udid = fetch_udid()?.toString() else {
|
guard let udid = fetch_udid()?.toString() else {
|
||||||
completion(.failure(.other("Unable to get UDID")))
|
completion(.failure(.other("Unable to get UDID")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var SJSURL = serverurl
|
guard serverURL.hasPrefix("http") else {
|
||||||
|
|
||||||
if (UserDefaults.standard.textInputSideJITServerurl ?? "").isEmpty {
|
|
||||||
SJSURL = "http://sidejitserver._http._tcp.local:8080"
|
|
||||||
}
|
|
||||||
|
|
||||||
if !SJSURL.hasPrefix("http") {
|
|
||||||
completion(.failure(.invalidURL))
|
completion(.failure(.invalidURL))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let fullurl = SJSURL + "/\(udid)/" + installedapp.resignedBundleIdentifier
|
let serverURLWithUDID = serverURL.appendingPathComponent(udid)
|
||||||
|
let fullURL = serverURLWithUDID.appendingPathComponent(installedApp.resignedBundleIdentifier)
|
||||||
|
|
||||||
let url = URL(string: fullurl)!
|
let task = URLSession.shared.dataTask(with: fullURL) { (data, response, error) in
|
||||||
|
|
||||||
let task = URLSession.shared.dataTask(with: url) {(data, response, error) in
|
|
||||||
if let error = error {
|
if let error = error {
|
||||||
completion(.failure(.errorConnecting))
|
completion(.failure(.errorConnecting))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
guard let data = data, let datastring = String(data: data, encoding: .utf8) else { return }
|
guard let data = data, let dataString = String(data: data, encoding: .utf8) else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if datastring == "Enabled JIT for '\(installedapp.name)'!" {
|
if dataString == "Enabled JIT for '\(installedApp.name)'!" {
|
||||||
let content = UNMutableNotificationContent()
|
let content = UNMutableNotificationContent()
|
||||||
content.title = "JIT Successfully Enabled"
|
content.title = "JIT Successfully Enabled"
|
||||||
content.subtitle = "JIT Enabled For \(installedapp.name)"
|
content.subtitle = "JIT Enabled For \(installedApp.name)"
|
||||||
content.sound = UNNotificationSound.default
|
content.sound = .default
|
||||||
|
|
||||||
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 0.1, repeats: false)
|
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 0.1, repeats: false)
|
||||||
let request = UNNotificationRequest(identifier: "EnabledJIT", content: content, trigger: nil)
|
let request = UNNotificationRequest(identifier: "EnabledJIT", content: content, trigger: nil)
|
||||||
|
|
||||||
UNUserNotificationCenter.current().add(request)
|
UNUserNotificationCenter.current().add(request)
|
||||||
|
|
||||||
completion(.success(()))
|
completion(.success(()))
|
||||||
} else {
|
} else {
|
||||||
let errorType: SideJITServerErrorType = datastring == "Could not find device!" ? .deviceNotFound : .other(datastring)
|
let errorType: SideJITServerErrorType = dataString == "Could not find device!"
|
||||||
|
? .deviceNotFound
|
||||||
|
: .other(dataString)
|
||||||
completion(.failure(errorType))
|
completion(.failure(errorType))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user