diff --git a/StikJIT.xcodeproj/project.pbxproj b/StikDebug.xcodeproj/project.pbxproj similarity index 91% rename from StikJIT.xcodeproj/project.pbxproj rename to StikDebug.xcodeproj/project.pbxproj index 3b5cc42..c5089c3 100644 --- a/StikJIT.xcodeproj/project.pbxproj +++ b/StikDebug.xcodeproj/project.pbxproj @@ -25,18 +25,18 @@ /* Begin PBXFileReference section */ DC5716242D9564760099302E /* em_proxy.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = em_proxy.xcframework; sourceTree = ""; }; - DC6F1D372D94EADD0071B2B6 /* StikJIT.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StikJIT.app; sourceTree = BUILT_PRODUCTS_DIR; }; - DC6F1D482D94EADF0071B2B6 /* StikJITTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StikJITTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - DC6F1D522D94EADF0071B2B6 /* StikJITUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StikJITUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + DC6F1D372D94EADD0071B2B6 /* StikDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StikDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DC6F1D482D94EADF0071B2B6 /* StikDebugTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StikDebugTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + DC6F1D522D94EADF0071B2B6 /* StikDebugUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StikDebugUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 1775D3612D9644FD00DFA8E0 /* Exceptions for "StikJIT" folder in "StikJIT" target */ = { + 1775D3612D9644FD00DFA8E0 /* Exceptions for "StikJIT" folder in "StikDebug" target */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Info.plist, ); - target = DC6F1D362D94EADD0071B2B6 /* StikJIT */; + target = DC6F1D362D94EADD0071B2B6 /* StikDebug */; }; /* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ @@ -44,7 +44,7 @@ DC6F1D392D94EADD0071B2B6 /* StikJIT */ = { isa = PBXFileSystemSynchronizedRootGroup; exceptions = ( - 1775D3612D9644FD00DFA8E0 /* Exceptions for "StikJIT" folder in "StikJIT" target */, + 1775D3612D9644FD00DFA8E0 /* Exceptions for "StikJIT" folder in "StikDebug" target */, ); path = StikJIT; sourceTree = ""; @@ -100,9 +100,9 @@ DC6F1D382D94EADD0071B2B6 /* Products */ = { isa = PBXGroup; children = ( - DC6F1D372D94EADD0071B2B6 /* StikJIT.app */, - DC6F1D482D94EADF0071B2B6 /* StikJITTests.xctest */, - DC6F1D522D94EADF0071B2B6 /* StikJITUITests.xctest */, + DC6F1D372D94EADD0071B2B6 /* StikDebug.app */, + DC6F1D482D94EADF0071B2B6 /* StikDebugTests.xctest */, + DC6F1D522D94EADF0071B2B6 /* StikDebugUITests.xctest */, ); name = Products; sourceTree = ""; @@ -118,9 +118,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - DC6F1D362D94EADD0071B2B6 /* StikJIT */ = { + DC6F1D362D94EADD0071B2B6 /* StikDebug */ = { isa = PBXNativeTarget; - buildConfigurationList = DC6F1D5C2D94EADF0071B2B6 /* Build configuration list for PBXNativeTarget "StikJIT" */; + buildConfigurationList = DC6F1D5C2D94EADF0071B2B6 /* Build configuration list for PBXNativeTarget "StikDebug" */; buildPhases = ( DC6F1D332D94EADD0071B2B6 /* Sources */, DC6F1D342D94EADD0071B2B6 /* Frameworks */, @@ -133,16 +133,16 @@ fileSystemSynchronizedGroups = ( DC6F1D392D94EADD0071B2B6 /* StikJIT */, ); - name = StikJIT; + name = StikDebug; packageProductDependencies = ( ); productName = StikJIT; - productReference = DC6F1D372D94EADD0071B2B6 /* StikJIT.app */; + productReference = DC6F1D372D94EADD0071B2B6 /* StikDebug.app */; productType = "com.apple.product-type.application"; }; - DC6F1D472D94EADF0071B2B6 /* StikJITTests */ = { + DC6F1D472D94EADF0071B2B6 /* StikDebugTests */ = { isa = PBXNativeTarget; - buildConfigurationList = DC6F1D5F2D94EADF0071B2B6 /* Build configuration list for PBXNativeTarget "StikJITTests" */; + buildConfigurationList = DC6F1D5F2D94EADF0071B2B6 /* Build configuration list for PBXNativeTarget "StikDebugTests" */; buildPhases = ( DC6F1D442D94EADF0071B2B6 /* Sources */, DC6F1D452D94EADF0071B2B6 /* Frameworks */, @@ -156,16 +156,16 @@ fileSystemSynchronizedGroups = ( DC6F1D4B2D94EADF0071B2B6 /* StikJITTests */, ); - name = StikJITTests; + name = StikDebugTests; packageProductDependencies = ( ); productName = StikJITTests; - productReference = DC6F1D482D94EADF0071B2B6 /* StikJITTests.xctest */; + productReference = DC6F1D482D94EADF0071B2B6 /* StikDebugTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - DC6F1D512D94EADF0071B2B6 /* StikJITUITests */ = { + DC6F1D512D94EADF0071B2B6 /* StikDebugUITests */ = { isa = PBXNativeTarget; - buildConfigurationList = DC6F1D622D94EADF0071B2B6 /* Build configuration list for PBXNativeTarget "StikJITUITests" */; + buildConfigurationList = DC6F1D622D94EADF0071B2B6 /* Build configuration list for PBXNativeTarget "StikDebugUITests" */; buildPhases = ( DC6F1D4E2D94EADF0071B2B6 /* Sources */, DC6F1D4F2D94EADF0071B2B6 /* Frameworks */, @@ -179,11 +179,11 @@ fileSystemSynchronizedGroups = ( DC6F1D552D94EADF0071B2B6 /* StikJITUITests */, ); - name = StikJITUITests; + name = StikDebugUITests; packageProductDependencies = ( ); productName = StikJITUITests; - productReference = DC6F1D522D94EADF0071B2B6 /* StikJITUITests.xctest */; + productReference = DC6F1D522D94EADF0071B2B6 /* StikDebugUITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; /* End PBXNativeTarget section */ @@ -210,7 +210,7 @@ }; }; }; - buildConfigurationList = DC6F1D322D94EADD0071B2B6 /* Build configuration list for PBXProject "StikJIT" */; + buildConfigurationList = DC6F1D322D94EADD0071B2B6 /* Build configuration list for PBXProject "StikDebug" */; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -224,9 +224,9 @@ projectDirPath = ""; projectRoot = ""; targets = ( - DC6F1D362D94EADD0071B2B6 /* StikJIT */, - DC6F1D472D94EADF0071B2B6 /* StikJITTests */, - DC6F1D512D94EADF0071B2B6 /* StikJITUITests */, + DC6F1D362D94EADD0071B2B6 /* StikDebug */, + DC6F1D472D94EADF0071B2B6 /* StikDebugTests */, + DC6F1D512D94EADF0071B2B6 /* StikDebugUITests */, ); }; /* End PBXProject section */ @@ -282,12 +282,12 @@ /* Begin PBXTargetDependency section */ DC6F1D4A2D94EADF0071B2B6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = DC6F1D362D94EADD0071B2B6 /* StikJIT */; + target = DC6F1D362D94EADD0071B2B6 /* StikDebug */; targetProxy = DC6F1D492D94EADF0071B2B6 /* PBXContainerItemProxy */; }; DC6F1D542D94EADF0071B2B6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = DC6F1D362D94EADD0071B2B6 /* StikJIT */; + target = DC6F1D362D94EADD0071B2B6 /* StikDebug */; targetProxy = DC6F1D532D94EADF0071B2B6 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -520,7 +520,7 @@ SWIFT_EMIT_LOC_STRINGS = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,7"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/StikJIT.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/StikJIT"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/StikDebug.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/StikDebug"; XROS_DEPLOYMENT_TARGET = 2.2; }; name = Debug; @@ -543,7 +543,7 @@ SWIFT_EMIT_LOC_STRINGS = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,7"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/StikJIT.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/StikJIT"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/StikDebug.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/StikDebug"; XROS_DEPLOYMENT_TARGET = 2.2; }; name = Release; @@ -595,7 +595,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - DC6F1D322D94EADD0071B2B6 /* Build configuration list for PBXProject "StikJIT" */ = { + DC6F1D322D94EADD0071B2B6 /* Build configuration list for PBXProject "StikDebug" */ = { isa = XCConfigurationList; buildConfigurations = ( DC6F1D5A2D94EADF0071B2B6 /* Debug */, @@ -604,7 +604,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DC6F1D5C2D94EADF0071B2B6 /* Build configuration list for PBXNativeTarget "StikJIT" */ = { + DC6F1D5C2D94EADF0071B2B6 /* Build configuration list for PBXNativeTarget "StikDebug" */ = { isa = XCConfigurationList; buildConfigurations = ( DC6F1D5D2D94EADF0071B2B6 /* Debug */, @@ -613,7 +613,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DC6F1D5F2D94EADF0071B2B6 /* Build configuration list for PBXNativeTarget "StikJITTests" */ = { + DC6F1D5F2D94EADF0071B2B6 /* Build configuration list for PBXNativeTarget "StikDebugTests" */ = { isa = XCConfigurationList; buildConfigurations = ( DC6F1D602D94EADF0071B2B6 /* Debug */, @@ -622,7 +622,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DC6F1D622D94EADF0071B2B6 /* Build configuration list for PBXNativeTarget "StikJITUITests" */ = { + DC6F1D622D94EADF0071B2B6 /* Build configuration list for PBXNativeTarget "StikDebugUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( DC6F1D632D94EADF0071B2B6 /* Debug */, diff --git a/StikDebug.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/StikDebug.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/StikDebug.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/StikJIT.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/StikJIT.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 919434a..94b2795 100644 --- a/StikJIT.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/StikJIT.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -1,7 +1,4 @@ - - diff --git a/StikJIT/Views/ConsoleLogsView.swift b/StikJIT/Views/ConsoleLogsView.swift index 8df8885..ad7c91a 100644 --- a/StikJIT/Views/ConsoleLogsView.swift +++ b/StikJIT/Views/ConsoleLogsView.swift @@ -246,9 +246,7 @@ struct ConsoleLogsView: View { dismiss() }) { HStack(spacing: 2) { - Image(systemName: "chevron.left") - .font(.system(size: 16, weight: .semibold)) - Text("Settings") + Text("Exit") .fontWeight(.regular) } .foregroundColor(accentColor) diff --git a/StikJIT/Views/HomeView.swift b/StikJIT/Views/HomeView.swift index 761ee13..515c552 100644 --- a/StikJIT/Views/HomeView.swift +++ b/StikJIT/Views/HomeView.swift @@ -30,6 +30,7 @@ struct HomeView: View { @State private var showPairingFileMessage = false @State private var pairingFileIsValid = false @State private var isImportingFile = false + @State private var showingConsoleLogsView = false @State private var importProgress: Float = 0.0 @State private var viewDidAppeared = false @@ -52,18 +53,17 @@ struct HomeView: View { VStack(spacing: 25) { Spacer() VStack(spacing: 5) { - Text("Welcome to StikJIT \(username)!") + Text("Welcome to StikDebug \(username)!") .font(.system(.largeTitle, design: .rounded)) .fontWeight(.bold) - Text(pairingFileExists ? "Click enable JIT to get started" : "Pick pairing file to get started") + Text(pairingFileExists ? "Click connect to get started" : "Pick pairing file to get started") .font(.system(.subheadline, design: .rounded)) .foregroundStyle(.secondary) .multilineTextAlignment(.center) } .padding(.top, 40) - // Main action button - changes based on whether we have a pairing file Button(action: { @@ -86,7 +86,7 @@ struct HomeView: View { HStack { Image(systemName: pairingFileExists ? "bolt.fill" : "doc.badge.plus") .font(.system(size: 20)) - Text(pairingFileExists ? "Enable JIT" : "Select Pairing File") + Text(pairingFileExists ? "Connect" : "Select Pairing File") .font(.system(.title3, design: .rounded)) .fontWeight(.semibold) } @@ -99,6 +99,28 @@ struct HomeView: View { } .padding(.horizontal, 20) + Button(action: { + showingConsoleLogsView = true + }) { + HStack { + Image(systemName: "apple.terminal") + .font(.system(size: 20)) + Text("Open Console") + .font(.system(.title3, design: .rounded)) + .fontWeight(.semibold) + } + .frame(maxWidth: .infinity) + .padding() + .background(accentColor) + .foregroundColor(accentColor.contrastText()) + .cornerRadius(16) + .shadow(color: Color.blue.opacity(0.3), radius: 8, x: 0, y: 4) + } + .padding(.horizontal, 20) + .sheet(isPresented: $showingConsoleLogsView) { + ConsoleLogsView() + } + // Status message area - keeps layout consistent ZStack { // Progress bar for importing file @@ -298,7 +320,7 @@ struct HomeView: View { isProcessing = true // Add log message - LogManager.shared.addInfoLog("Starting JIT for \(bundleID)") + LogManager.shared.addInfoLog("Starting Debug for \(bundleID)") DispatchQueue.global(qos: .background).async { @@ -311,7 +333,7 @@ struct HomeView: View { }) DispatchQueue.main.async { - LogManager.shared.addInfoLog("JIT process completed for \(bundleID)") + LogManager.shared.addInfoLog("Debug process completed for \(bundleID)") isProcessing = false if success && doAutoQuitAfterEnablingJIT { @@ -336,12 +358,6 @@ class InstalledAppsViewModel: ObservableObject { print(error) self.apps = [:] } - - if self.apps.count == 0 && !checkAppEntitlement("get-task-allow") && !UserDefaults.standard.bool(forKey: "skipGetTaskAllowCheck") { - showAlert(title: "Warning", message: "StikJIT is not signed with **get-task-allow**. It's OK, but if you also sign the app you want to enable JIT for with the same method, it\n\n ***WILL NOT WORK***.\n\nPlease sign the app you want to enable JIT for using a development certificate. You can disable this alert in settings.", showOk: true) { _ in - - } - } } } diff --git a/StikJIT/Views/SettingsView.swift b/StikJIT/Views/SettingsView.swift index 5cb043d..8e5beae 100644 --- a/StikJIT/Views/SettingsView.swift +++ b/StikJIT/Views/SettingsView.swift @@ -12,7 +12,7 @@ struct SettingsView: View { @AppStorage("customAccentColor") private var customAccentColorHex: String = "" @AppStorage("selectedAppIcon") private var selectedAppIcon: String = "AppIcon" @AppStorage("autoQuitAfterEnablingJIT") private var doAutoQuitAfterEnablingJIT = false - @AppStorage("skipGetTaskAllowCheck") private var doSkipGetTaskAllowCheck = false + @AppStorage("skipGetTaskAllowCheck") private var doSkipGetTaskAllowCheck = true @State private var isShowingPairingFilePicker = false @Environment(\.colorScheme) private var colorScheme @@ -79,7 +79,7 @@ struct SettingsView: View { } .padding(.top, 16) - Text("StikJIT") + Text("StikDebug") .font(.title2) .fontWeight(.semibold) .foregroundColor(.primary) @@ -127,9 +127,6 @@ struct SettingsView: View { .foregroundColor(.primary) .padding(.bottom, 4) - Toggle("Automatically Quit After Enabling JIT", isOn: $doAutoQuitAfterEnablingJIT) - .foregroundColor(.primary) - .padding(.vertical, 6) Toggle("Skip get-task-allow Check", isOn: $doSkipGetTaskAllowCheck) .foregroundColor(.primary) .padding(.vertical, 6) @@ -285,8 +282,6 @@ struct SettingsView: View { self.mounted = isMounted() } } - - // About section SettingsCard { @@ -380,46 +375,6 @@ struct SettingsView: View { } .padding(.bottom, 4) - // NEW SEPARATE LINKS CARD - SettingsCard { - VStack(alignment: .leading, spacing: 20) { - Text("Links") - .font(.headline) - .foregroundColor(.primary) - .padding(.bottom, 4) - - VStack(spacing: 6) { - // Existing Links - LinkRow(icon: "link", title: "Source Code", url: "https://github.com/0-Blu/StikJIT") - LinkRow(icon: "xmark.shield", title: "Report an Issue", url: "https://github.com/0-Blu/StikJIT/issues") - // New Discord Link - LinkRow(icon: "bubble.left", title: "Join Discord", url: "https://discord.gg/ZnNcrRT3M8") - //autoJIT HomeScreen Edition shortcut link - LinkRow(icon: "sparkles", title: "iOS Shortcut", url: "https://www.icloud.com/shortcuts/1e1b522ea1e045ebb0921d31870d8cb4") - // StikNES promotion - Button(action: { - if let url = URL(string: "https://apps.apple.com/us/app/stiknes/id6737158545") { - UIApplication.shared.open(url) - } - }) { - HStack(alignment: .center) { - Text("Like this app? Check out StikNES!") - .foregroundColor(.secondary) - Spacer() - Image(systemName: "gamecontroller") - .font(.system(size: 14)) - .foregroundColor(accentColor) - .frame(width: 24) - } - } - .padding(.vertical, 8) - } - } - .padding(.vertical, 20) - .padding(.horizontal, 16) - } - .padding(.bottom, 4) - // Advanced Settings Card SettingsCard { VStack(alignment: .leading, spacing: 20) { diff --git a/StikJIT/idevice/JITEnableContext.m b/StikJIT/idevice/JITEnableContext.m index 04ffa15..8c59c25 100644 --- a/StikJIT/idevice/JITEnableContext.m +++ b/StikJIT/idevice/JITEnableContext.m @@ -13,7 +13,7 @@ #include "applist.h" #include "JITEnableContext.h" -#import "StikJIT-Swift.h" // This imports the Swift files into Objective-C +#import "StikDebug-Swift.h" // This imports the Swift files into Objective-C JITEnableContext* sharedJITContext = nil;