From 83055a39a3d19e966096627b2ef07b3b43664b4e Mon Sep 17 00:00:00 2001 From: Stephen B <158498287+StephenDev0@users.noreply.github.com> Date: Fri, 26 Sep 2025 20:39:16 -0400 Subject: [PATCH] App Testing --- StikDebug.xcodeproj/project.pbxproj | 36 ++++++++----------- .../xcshareddata/swiftpm/Package.resolved | 19 +++------- StikJIT/Views/MainTabView.swift | 6 +++- StikJIT/Views/Testing.swift | 21 ++++++++--- 4 files changed, 40 insertions(+), 42 deletions(-) diff --git a/StikDebug.xcodeproj/project.pbxproj b/StikDebug.xcodeproj/project.pbxproj index 6e3d8a5..08737af 100644 --- a/StikDebug.xcodeproj/project.pbxproj +++ b/StikDebug.xcodeproj/project.pbxproj @@ -8,9 +8,8 @@ /* Begin PBXBuildFile section */ 17C744F02E20BED000834F17 /* Pipify in Frameworks */ = {isa = PBXBuildFile; productRef = 17C744EF2E20BED000834F17 /* Pipify */; }; - 68AA2E4D2E8214A1008342E8 /* StikDebug.storekit in Resources */ = {isa = PBXBuildFile; fileRef = 68AA2E4C2E8214A1008342E8 /* StikDebug.storekit */; }; - 68AD80462E6B65DA00DE9112 /* ZsignSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 68AD80452E6B65DA00DE9112 /* ZsignSwift */; }; - 68AD80482E6B65DA00DE9112 /* zsign in Frameworks */ = {isa = PBXBuildFile; productRef = 68AD80472E6B65DA00DE9112 /* zsign */; }; + 687843662E8765D1002D0813 /* ZSignApple in Frameworks */ = {isa = PBXBuildFile; productRef = 687843652E8765D1002D0813 /* ZSignApple */; }; + 687843682E8765FA002D0813 /* StikDebug.storekit in Resources */ = {isa = PBXBuildFile; fileRef = 687843672E8765FA002D0813 /* StikDebug.storekit */; }; 68D1FA402E847E4A0028A0EA /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68D1FA3F2E847E4A0028A0EA /* StoreKit.framework */; }; 68D569BE2E1B415700A5BA36 /* CodeEditorView in Frameworks */ = {isa = PBXBuildFile; productRef = 68D569BD2E1B415700A5BA36 /* CodeEditorView */; }; 68D569C02E1B415700A5BA36 /* LanguageSupport in Frameworks */ = {isa = PBXBuildFile; productRef = 68D569BF2E1B415700A5BA36 /* LanguageSupport */; }; @@ -70,7 +69,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 68AA2E4C2E8214A1008342E8 /* StikDebug.storekit */ = {isa = PBXFileReference; lastKnownFileType = text; path = StikDebug.storekit; sourceTree = ""; }; + 687843672E8765FA002D0813 /* StikDebug.storekit */ = {isa = PBXFileReference; lastKnownFileType = text; path = StikDebug.storekit; sourceTree = ""; }; 68D1FA3F2E847E4A0028A0EA /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; DC139F6C2DE97EA400F63846 /* DebugWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = DebugWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; DC139F6D2DE97EA400F63846 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; @@ -160,12 +159,11 @@ files = ( DCBA85862E3897BD00E88C06 /* StikImporter in Frameworks */, 17C744F02E20BED000834F17 /* Pipify in Frameworks */, - 68AD80462E6B65DA00DE9112 /* ZsignSwift in Frameworks */, - 68AD80482E6B65DA00DE9112 /* zsign in Frameworks */, 68D569C02E1B415700A5BA36 /* LanguageSupport in Frameworks */, 68D1FA402E847E4A0028A0EA /* StoreKit.framework in Frameworks */, 68D569BE2E1B415700A5BA36 /* CodeEditorView in Frameworks */, 68E714E62E6AA2B00025610F /* ZIPFoundation in Frameworks */, + 687843662E8765D1002D0813 /* ZSignApple in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -197,8 +195,8 @@ DC6F1D2E2D94EADD0071B2B6 = { isa = PBXGroup; children = ( + 687843672E8765FA002D0813 /* StikDebug.storekit */, DC139F862DE97F2000F63846 /* DebugWidgetExtension.entitlements */, - 68AA2E4C2E8214A1008342E8 /* StikDebug.storekit */, DC6F1D392D94EADD0071B2B6 /* StikJIT */, DC6F1D4B2D94EADF0071B2B6 /* StikJITTests */, DC6F1D552D94EADF0071B2B6 /* StikJITUITests */, @@ -282,8 +280,7 @@ 17C744EF2E20BED000834F17 /* Pipify */, DCBA85852E3897BD00E88C06 /* StikImporter */, 68E714E52E6AA2B00025610F /* ZIPFoundation */, - 68AD80452E6B65DA00DE9112 /* ZsignSwift */, - 68AD80472E6B65DA00DE9112 /* zsign */, + 687843652E8765D1002D0813 /* ZSignApple */, ); productName = StikJIT; productReference = DC6F1D372D94EADD0071B2B6 /* StikDebug.app */; @@ -402,7 +399,7 @@ 17C744EE2E20BED000834F17 /* XCRemoteSwiftPackageReference "swiftui-pipify" */, DCBA85842E3897BD00E88C06 /* XCRemoteSwiftPackageReference "StikImporter" */, 68E714E42E6AA2B00025610F /* XCRemoteSwiftPackageReference "ZIPFoundation" */, - 68AD80442E6B65DA00DE9112 /* XCRemoteSwiftPackageReference "Zsign-Package" */, + 687843642E8765D0002D0813 /* XCRemoteSwiftPackageReference "zsign-swift" */, ); preferredProjectObjectVersion = 77; productRefGroup = DC6F1D382D94EADD0071B2B6 /* Products */; @@ -423,7 +420,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 68AA2E4D2E8214A1008342E8 /* StikDebug.storekit in Resources */, + 687843682E8765FA002D0813 /* StikDebug.storekit in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1014,11 +1011,11 @@ kind = branch; }; }; - 68AD80442E6B65DA00DE9112 /* XCRemoteSwiftPackageReference "Zsign-Package" */ = { + 687843642E8765D0002D0813 /* XCRemoteSwiftPackageReference "zsign-swift" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/khcrysalis/Zsign-Package/"; + repositoryURL = "https://github.com/loyahdev/zsign-swift"; requirement = { - branch = package; + branch = main; kind = branch; }; }; @@ -1054,15 +1051,10 @@ package = 17C744EE2E20BED000834F17 /* XCRemoteSwiftPackageReference "swiftui-pipify" */; productName = Pipify; }; - 68AD80452E6B65DA00DE9112 /* ZsignSwift */ = { + 687843652E8765D1002D0813 /* ZSignApple */ = { isa = XCSwiftPackageProductDependency; - package = 68AD80442E6B65DA00DE9112 /* XCRemoteSwiftPackageReference "Zsign-Package" */; - productName = ZsignSwift; - }; - 68AD80472E6B65DA00DE9112 /* zsign */ = { - isa = XCSwiftPackageProductDependency; - package = 68AD80442E6B65DA00DE9112 /* XCRemoteSwiftPackageReference "Zsign-Package" */; - productName = zsign; + package = 687843642E8765D0002D0813 /* XCRemoteSwiftPackageReference "zsign-swift" */; + productName = ZSignApple; }; 68D569BD2E1B415700A5BA36 /* CodeEditorView */ = { isa = XCSwiftPackageProductDependency; diff --git a/StikDebug.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/StikDebug.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 0bfa660..4c7b105 100644 --- a/StikDebug.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/StikDebug.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "01d0d47170e97de76701ab09eade5c2be88cf1d0ab755275f6cb2c56fe6d123c", + "originHash" : "af465bb1c1430dc380451fa591e9921f0137b228028823dc223d9644e144d632", "pins" : [ { "identity" : "codeeditorview", @@ -10,15 +10,6 @@ "version" : "0.15.4" } }, - { - "identity" : "openssl", - "kind" : "remoteSourceControl", - "location" : "https://github.com/krzyzanowskim/OpenSSL", - "state" : { - "revision" : "623c84da314e85363236507ca38a4bde65df21c3", - "version" : "3.3.3001" - } - }, { "identity" : "rearrange", "kind" : "remoteSourceControl", @@ -56,12 +47,12 @@ } }, { - "identity" : "zsign-package", + "identity" : "zsign-swift", "kind" : "remoteSourceControl", - "location" : "https://github.com/khcrysalis/Zsign-Package/", + "location" : "https://github.com/loyahdev/zsign-swift", "state" : { - "branch" : "package", - "revision" : "6ffe703df73ef9069adacdbb19d571f11a69a801" + "branch" : "main", + "revision" : "574ad0bc993ecb2b13b170730bd5b196005034b4" } } ], diff --git a/StikJIT/Views/MainTabView.swift b/StikJIT/Views/MainTabView.swift index 6e82388..fdab8c2 100644 --- a/StikJIT/Views/MainTabView.swift +++ b/StikJIT/Views/MainTabView.swift @@ -40,7 +40,11 @@ struct MainTabView: View { ScriptListView() .tabItem { Label("Scripts", systemImage: "scroll") } .tag(1) - + + IPAAppManagerView() + .tabItem { Label("Testing", systemImage: "square.grid.2x2.fill") } + .tag(2) + DeviceInfoView() .tabItem { Label("Device Info", systemImage: "info.circle.fill") } .tag(3) diff --git a/StikJIT/Views/Testing.swift b/StikJIT/Views/Testing.swift index 33e09f7..f45139a 100644 --- a/StikJIT/Views/Testing.swift +++ b/StikJIT/Views/Testing.swift @@ -1,6 +1,6 @@ // // Testing.swift -// StikDebug 2 +// StikDebug // // Created by Stephen Bove on 8/8/25. // @@ -9,7 +9,7 @@ import SwiftUI import Foundation import UniformTypeIdentifiers import ZIPFoundation -import Zsign +import ZSign import StikImporter import UIKit import PhotosUI @@ -364,6 +364,18 @@ final class AppSignerManager: ObservableObject { try? FileManager.default.copyItem(at: icon1024URL, to: previewDest) } + let pw = KeychainHelper.shared.readPassword(forKey: cert.id.uuidString) ?? "" + let rc = zsign( + appFolder.path, + cert.p12URL.path, + cert.p12URL.path, + cert.mobURL?.path ?? "", + pw + ) + guard rc == 0 else { + throw NSError(domain: "zsign", code: Int(rc), + userInfo: [NSLocalizedDescriptionKey: "zsign returned \(rc)"]) + } let outDir = docs.appendingPathComponent("SignedApps/\(newName)", isDirectory: true) if FileManager.default.fileExists(atPath: outDir.path) { try FileManager.default.removeItem(at: outDir) } @@ -540,7 +552,7 @@ enum ManagerSection: String, CaseIterable, Identifiable { struct GlassLiquidTabSwitcher: View { @Binding var selection: ManagerSection - var accent: Color = .blue + var accent: Color = .white var height: CGFloat = 56 private let pad: CGFloat = 6 @@ -685,9 +697,8 @@ private struct ManageCertsView: View { struct IPAAppManagerView: View { @AppStorage("customAccentColor") private var customAccentColorHex: String = "" - @Environment(\.themeExpansionManager) private var themeExpansion private var accent: Color { - themeExpansion?.resolvedAccentColor(from: customAccentColorHex) ?? .blue + customAccentColorHex.isEmpty ? .white : Color(hex: customAccentColorHex) ?? .white } @StateObject private var mgr = AppSignerManager()