pt1 of debug

This commit is contained in:
Stephen 2025-04-16 00:06:29 -04:00
parent 430fdc5acb
commit 50b77252b1
7 changed files with 72 additions and 99 deletions

View file

@ -25,18 +25,18 @@
/* Begin PBXFileReference section */
DC5716242D9564760099302E /* em_proxy.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = em_proxy.xcframework; sourceTree = "<group>"; };
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 = "<group>";
@ -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 = "<group>";
@ -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 */,

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

View file

@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

View file

@ -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)

View file

@ -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
}
}
}
}

View file

@ -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) {

View file

@ -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;