From 1649bb73d991c31df5e9a2d91e22df1aef6bfa6d Mon Sep 17 00:00:00 2001 From: Magesh K <47920326+mahee96@users.noreply.github.com> Date: Mon, 13 Jan 2025 03:40:26 +0530 Subject: [PATCH] [Settings]: version info now includes xcode build version if in debug config --- .../Settings/SettingsViewController.swift | 53 ++++++++++++------- .../Extensions/UserDefaults+AltStore.swift | 1 + 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/AltStore/Settings/SettingsViewController.swift b/AltStore/Settings/SettingsViewController.swift index 1f9b0e24..77db3f8b 100644 --- a/AltStore/Settings/SettingsViewController.swift +++ b/AltStore/Settings/SettingsViewController.swift @@ -209,9 +209,27 @@ private extension SettingsViewController let BUILD_REVISION = "CFBundleRevision" // commit ID for now (but could be any, set by build env vars let CURRENT_PROJECT_VERSION = kCFBundleVersionKey as String - let XCODE_VERSION = "DTXcode" - let XCODE_REVISION = "DTXcodeBuild" + func getXcodeVersion() -> String { + let XCODE_VERSION = "DTXcode" + let XCODE_REVISION = "DTXcodeBuild" + let xcode = Bundle.main.object(forInfoDictionaryKey: XCODE_VERSION) as? String + let build = Bundle.main.object(forInfoDictionaryKey: XCODE_REVISION) as? String + + var xcodeVersion = xcode.map { version in +// " - Xcode \(version) - " + (build.map { revision in "\(revision)" } ?? "") // Ex: "0.6.0 - Xcode 16.2 - 21ac1ef" + "Xcode \(version) - " + (build.map { revision in "\(revision)" } ?? "") // Ex: "0.6.0 - Xcode 16.2 - 21ac1ef" + } ?? "" + + if let pairing = Bundle.main.object(forInfoDictionaryKey: "ALTPairingFile") as? String, + pairing != ""{ + xcodeVersion += " - true" + } + return xcodeVersion + } + + var versionLabel: String = "" + if let installedApp = InstalledApp.fetchAltStore(in: DatabaseManager.shared.viewContext) { #if BETA @@ -219,40 +237,37 @@ private extension SettingsViewController let bundleVersion: String? = Bundle.main.object(forInfoDictionaryKey: CURRENT_PROJECT_VERSION) as? String let buildRevision: String? = Bundle.main.object(forInfoDictionaryKey: BUILD_REVISION) as? String - let localizedVersion = bundleVersion.map { version in + var localizedVersion = bundleVersion.map { version in "\(installedApp.version) (\(version))" + (buildRevision.map { revision in " - \(revision)" } ?? "") // Ex: "0.6.0 (0600) - 1acdef3" } ?? installedApp.localizedVersion #else - let localizedVersion = installedApp.version + var localizedVersion = installedApp.version #endif - - return NSLocalizedString(String(format: "Version %@", localizedVersion), comment: "SideStore Version") + + versionLabel = NSLocalizedString(String(format: "Version %@", localizedVersion), comment: "SideStore Version") } else if let version = Bundle.main.object(forInfoDictionaryKey: MARKETING_VERSION_KEY) as? String { var version = "SideStore \(version)" - - let xcode = Bundle.main.object(forInfoDictionaryKey: XCODE_VERSION) as? String - let build = Bundle.main.object(forInfoDictionaryKey: XCODE_REVISION) as? String - version += xcode.map { version in - " - Xcode \(version) - " + (build.map { revision in "\(revision)" } ?? "") // Ex: "0.6.0 - Xcode 16.2 - 21ac1ef" - } ?? "" - - if let pairing = Bundle.main.object(forInfoDictionaryKey: "ALTPairingFile") as? String, - pairing != ""{ - version += " - true" - } + version += getXcodeVersion() - return NSLocalizedString(String(format: "Version %@", version), comment: "SideStore Version") + versionLabel = NSLocalizedString(String(format: "Version %@", version), comment: "SideStore Version") } else { var version = "SideStore\t" version += "\n\(Bundle.Info.appbundleIdentifier)" - return NSLocalizedString(version, comment: "SideStore Version") + versionLabel = NSLocalizedString(version, comment: "SideStore Version") } + + // add xcode build version if in debug mode + #if DEBUG + versionLabel += "\n\(getXcodeVersion())" + #endif + + return versionLabel } diff --git a/AltStoreCore/Extensions/UserDefaults+AltStore.swift b/AltStoreCore/Extensions/UserDefaults+AltStore.swift index 79011098..ec50481e 100644 --- a/AltStoreCore/Extensions/UserDefaults+AltStore.swift +++ b/AltStoreCore/Extensions/UserDefaults+AltStore.swift @@ -122,6 +122,7 @@ public extension UserDefaults #keyPath(UserDefaults.isAppLimitDisabled): false, #keyPath(UserDefaults.isBetaUpdatesEnabled): false, #keyPath(UserDefaults.isExportResignedAppEnabled): false, + #keyPath(UserDefaults.isDebugModeEnabled): false, #keyPath(UserDefaults.isVerboseOperationsLoggingEnabled): false, #keyPath(UserDefaults.isBackgroundRefreshEnabled): true, #keyPath(UserDefaults.isIdleTimeoutDisableEnabled): true,