From 7887b1f633dd20ab7cd176fdb3a1d1c0ed52cd8e Mon Sep 17 00:00:00 2001 From: Alin Date: Tue, 2 Jul 2024 17:05:39 -0600 Subject: [PATCH] v3.7.7 --- FinderOpen/Info.plist | 4 - Pearcleaner.xcodeproj/project.pbxproj | 66 ++++++++++----- .../Pearcleaner Release - Signed.xcscheme | 84 +++++++++++++++++++ Pearcleaner/Logic/AppState.swift | 2 + Pearcleaner/Settings/About.swift | 25 ++++++ Pearcleaner/Settings/SettingsWindow.swift | 6 ++ Pearcleaner/Settings/Tips.swift | 53 ++++++++++++ 7 files changed, 214 insertions(+), 26 deletions(-) create mode 100644 Pearcleaner.xcodeproj/xcshareddata/xcschemes/Pearcleaner Release - Signed.xcscheme create mode 100644 Pearcleaner/Settings/Tips.swift diff --git a/FinderOpen/Info.plist b/FinderOpen/Info.plist index 421c491..1f9b386 100644 --- a/FinderOpen/Info.plist +++ b/FinderOpen/Info.plist @@ -2,10 +2,6 @@ - CFBundleShortVersionString - $(APP_VERSION) - CFBundleVersion - $(APP_BUILD) NSExtension NSExtensionAttributes diff --git a/Pearcleaner.xcodeproj/project.pbxproj b/Pearcleaner.xcodeproj/project.pbxproj index 2320f8e..a774d65 100644 --- a/Pearcleaner.xcodeproj/project.pbxproj +++ b/Pearcleaner.xcodeproj/project.pbxproj @@ -35,6 +35,7 @@ C78121662BC892A000BE06BD /* FinderOpen.swift in Sources */ = {isa = PBXBuildFile; fileRef = C78121652BC892A000BE06BD /* FinderOpen.swift */; }; C781216B2BC892A000BE06BD /* FinderOpen.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = C78121632BC892A000BE06BD /* FinderOpen.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; C786F1A82C29E599001B3800 /* Builds in Resources */ = {isa = PBXBuildFile; fileRef = C786F1A72C29E599001B3800 /* Builds */; }; + C79947962C34A794007279CC /* Tips.swift in Sources */ = {isa = PBXBuildFile; fileRef = C79947952C34A794007279CC /* Tips.swift */; }; C79D05202BC99EB40083F976 /* ThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C79D051F2BC99EB40083F976 /* ThemeManager.swift */; }; C7A27E812AFD7C4600166168 /* com.alienator88.PearcleanerSentinel.plist in Resources */ = {isa = PBXBuildFile; fileRef = C7A27E802AFD7C4600166168 /* com.alienator88.PearcleanerSentinel.plist */; }; C7A2AE5D2B9644F300161540 /* FileWatcher in Frameworks */ = {isa = PBXBuildFile; productRef = C7A2AE5C2B9644F300161540 /* FileWatcher */; }; @@ -135,6 +136,7 @@ C78121672BC892A000BE06BD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; C78121682BC892A000BE06BD /* FinderOpen.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = FinderOpen.entitlements; sourceTree = ""; }; C786F1A72C29E599001B3800 /* Builds */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Builds; sourceTree = SOURCE_ROOT; }; + C79947952C34A794007279CC /* Tips.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tips.swift; sourceTree = ""; }; C79D051F2BC99EB40083F976 /* ThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManager.swift; sourceTree = ""; }; C7A27E7F2AFD70DD00166168 /* PearcleanerSentinel.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = PearcleanerSentinel.entitlements; sourceTree = ""; }; C7A27E802AFD7C4600166168 /* com.alienator88.PearcleanerSentinel.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = com.alienator88.PearcleanerSentinel.plist; sourceTree = ""; }; @@ -246,6 +248,7 @@ C7ED86B02BA8A35500F13DE4 /* Interface.swift */, C7DD49EF2BABA14400CCBA16 /* Folders.swift */, C76D08472AF83C3F00D07867 /* Update.swift */, + C79947952C34A794007279CC /* Tips.swift */, C76D08502AF850F300D07867 /* About.swift */, ); path = Settings; @@ -473,6 +476,7 @@ buildActionMask = 2147483647; files = ( C7DD49EA2BAB4D8100CCBA16 /* AppInfoFetch.swift in Sources */, + C79947962C34A794007279CC /* Tips.swift in Sources */, C76D08482AF83C3F00D07867 /* Update.swift in Sources */, C7FB173B2B96321300B96F9A /* AppsListView.swift in Sources */, C7045A342B068B2900376976 /* UpdateView.swift in Sources */, @@ -540,16 +544,18 @@ APP_BUILD = "$(APP_BUILD)"; APP_VERSION = "$(APP_VERSION)"; CODE_SIGN_ENTITLEMENTS = PearcleanerSentinel/PearcleanerSentinel.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application"; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = "$(APP_BUILD)"; DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = BK8443AXLU; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = BK8443AXLU; ENABLE_HARDENED_RUNTIME = YES; FRAMEWORK_SEARCH_PATHS = ""; MACOSX_DEPLOYMENT_TARGET = 13.0; PRODUCT_BUNDLE_IDENTIFIER = com.alienator88.PearcleanerSentinel; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; SWIFT_VERSION = 5.0; }; @@ -561,16 +567,18 @@ APP_BUILD = "$(APP_BUILD)"; APP_VERSION = "$(APP_VERSION)"; CODE_SIGN_ENTITLEMENTS = PearcleanerSentinel/PearcleanerSentinel.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application"; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = "$(APP_BUILD)"; DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = BK8443AXLU; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = BK8443AXLU; ENABLE_HARDENED_RUNTIME = YES; FRAMEWORK_SEARCH_PATHS = ""; MACOSX_DEPLOYMENT_TARGET = 13.0; PRODUCT_BUNDLE_IDENTIFIER = com.alienator88.PearcleanerSentinel; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; SWIFT_VERSION = 5.0; }; @@ -580,8 +588,8 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - APP_BUILD = 51; - APP_VERSION = 3.7.6; + APP_BUILD = 52; + APP_VERSION = 3.7.7; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -650,8 +658,8 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - APP_BUILD = 51; - APP_VERSION = 3.7.6; + APP_BUILD = 52; + APP_VERSION = 3.7.7; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -717,12 +725,13 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = Pearcleaner/Resources/Pearcleaner.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application"; + CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_ASSET_PATHS = ""; - DEVELOPMENT_TEAM = BK8443AXLU; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = BK8443AXLU; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -739,6 +748,8 @@ MACOSX_DEPLOYMENT_TARGET = 13.0; PRODUCT_BUNDLE_IDENTIFIER = com.alienator88.Pearcleaner; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "M1 Pro Signed - Pearcleaner"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; }; @@ -753,12 +764,13 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = Pearcleaner/Resources/Pearcleaner.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application"; + CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_ASSET_PATHS = ""; - DEVELOPMENT_TEAM = BK8443AXLU; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = BK8443AXLU; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -775,6 +787,8 @@ MACOSX_DEPLOYMENT_TARGET = 13.0; PRODUCT_BUNDLE_IDENTIFIER = com.alienator88.Pearcleaner; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "M1 Pro Signed - Pearcleaner"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; }; @@ -786,10 +800,12 @@ APP_BUILD = "$(APP_BUILD)"; APP_VERSION = "$(APP_VERSION)"; CODE_SIGN_ENTITLEMENTS = FinderOpen/FinderOpen.entitlements; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application"; + CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = "$(APP_BUILD)"; - DEVELOPMENT_TEAM = BK8443AXLU; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = BK8443AXLU; ENABLE_HARDENED_RUNTIME = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = FinderOpen/Info.plist; @@ -804,8 +820,10 @@ ); MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = "$(APP_VERSION)"; - PRODUCT_BUNDLE_IDENTIFIER = com.alienator88.Pearcleaner.FinderOpen; + PRODUCT_BUNDLE_IDENTIFIER = com.alienator88.Pearcleaner; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "M1 Pro Signed - Pearcleaner"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; @@ -818,10 +836,12 @@ APP_BUILD = "$(APP_BUILD)"; APP_VERSION = "$(APP_VERSION)"; CODE_SIGN_ENTITLEMENTS = FinderOpen/FinderOpen.entitlements; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application"; + CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = "$(APP_BUILD)"; - DEVELOPMENT_TEAM = BK8443AXLU; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = BK8443AXLU; ENABLE_HARDENED_RUNTIME = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = FinderOpen/Info.plist; @@ -836,8 +856,10 @@ ); MACOSX_DEPLOYMENT_TARGET = 13.0; MARKETING_VERSION = "$(APP_VERSION)"; - PRODUCT_BUNDLE_IDENTIFIER = com.alienator88.Pearcleaner.FinderOpen; + PRODUCT_BUNDLE_IDENTIFIER = com.alienator88.Pearcleaner; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "M1 Pro Signed - Pearcleaner"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; diff --git a/Pearcleaner.xcodeproj/xcshareddata/xcschemes/Pearcleaner Release - Signed.xcscheme b/Pearcleaner.xcodeproj/xcshareddata/xcschemes/Pearcleaner Release - Signed.xcscheme new file mode 100644 index 0000000..1b6facb --- /dev/null +++ b/Pearcleaner.xcodeproj/xcshareddata/xcschemes/Pearcleaner Release - Signed.xcscheme @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pearcleaner/Logic/AppState.swift b/Pearcleaner/Logic/AppState.swift index 1841e15..1db6503 100644 --- a/Pearcleaner/Logic/AppState.swift +++ b/Pearcleaner/Logic/AppState.swift @@ -157,6 +157,7 @@ enum CurrentTabView:Int case interface case folders case update + case tips case about var title: String { @@ -165,6 +166,7 @@ enum CurrentTabView:Int case .interface: return "Interface" case .folders: return "Folders" case .update: return "Update" + case .tips: return "Tips" case .about: return "About" } } diff --git a/Pearcleaner/Settings/About.swift b/Pearcleaner/Settings/About.swift index 1c6cfc6..65a4b89 100644 --- a/Pearcleaner/Settings/About.swift +++ b/Pearcleaner/Settings/About.swift @@ -145,6 +145,31 @@ struct AboutSettingsTab: View { .padding(5) .padding(.leading) + + HStack{ + Image(systemName: "dollarsign.circle.fill") + .resizable() + .scaledToFit() + .frame(width: 20, height: 20) + .padding(.trailing) + + VStack(alignment: .leading){ + Text("Apple Developer Account Sponsor") + Text("Many thanks to redditor u/dharsanb") + .font(.callout) + .foregroundStyle(Color("mode").opacity(0.5)) + + } + Spacer() + Button(""){ + NSWorkspace.shared.open(URL(string: "https://www.reddit.com/user/dharsanb/")!) + } + .buttonStyle(SimpleButtonStyle(icon: "link", help: "View")) + + } + .padding(5) + .padding(.leading) + Spacer() } diff --git a/Pearcleaner/Settings/SettingsWindow.swift b/Pearcleaner/Settings/SettingsWindow.swift index c209edb..0389db6 100644 --- a/Pearcleaner/Settings/SettingsWindow.swift +++ b/Pearcleaner/Settings/SettingsWindow.swift @@ -43,6 +43,12 @@ struct SettingsView: View { } .tag(CurrentTabView.update) + TipsSettingsTab() + .tabItem { + Label(CurrentTabView.tips.title, systemImage: "star") + } + .tag(CurrentTabView.tips) + AboutSettingsTab() .tabItem { Label(CurrentTabView.about.title, systemImage: "info.circle") diff --git a/Pearcleaner/Settings/Tips.swift b/Pearcleaner/Settings/Tips.swift new file mode 100644 index 0000000..7288a67 --- /dev/null +++ b/Pearcleaner/Settings/Tips.swift @@ -0,0 +1,53 @@ +// +// Tips.swift +// Pearcleaner +// +// Created by Alin Lupascu on 7/2/24. +// + + +import SwiftUI +import Foundation + +struct TipsSettingsTab: View { + @EnvironmentObject var appState: AppState + @EnvironmentObject var themeSettings: ThemeSettings + + var body: some View { + VStack { + + ScrollView { + VStack(alignment: .leading, spacing: 15) { + Text("1. Clicking an app will perform a search for files and folders, which will be displayed in the Files view") + Text("2. The Files view will show app details and the found files along with a toolbar above the file list which shows related badges for the app, allows checking/unchecking all files and sorting alphabetically or by size") + Text("3. Clicking the Trash button on the Files view will remove the selected files and folders only") + Text("4. After deletion, you can hit CMD + Z to undo while Pearcleaner or Finder is focused") + Text("5. While on the Files view for an app, you can open the Condition Builder with CMD + B or from the Tools menubar item Instructions on using Condition Builder are available on the popup sheet") + Text("6. On the Files view again, you can hit CMD + E to export a list of the found files or from the Tools menubar item") + Text("7. CMD + U will launch the updater") + Text("8. CMD + R will refresh the app list. This can also be done from the refresh button in the search bar") + Text("9. In the search bar menu button, you will also find Leftover Files which will find files leftover by previously uninstalled applications") + Text("10. You can enable a menubar icon from Settings") + Text("11. You can enable UI mini mode from Settings") + Text("12. You can enable a Finder extension from Settings which allows you to uninstall apps by right clicking them in Finder") + Text("13. You can enable Homebrew cleanup from Settings") + Text("14. You can change the app theme colors from Settings") + Text("15. When there's new features available, a new features badge will show at the top of the app list. Same for app updates or missing permissions") + } + .padding() + } + .scrollIndicators(.visible) + .frame(minHeight: 0, maxHeight: .infinity) + .frame(minWidth: 0, maxWidth: .infinity) + .background(backgroundView(themeSettings: themeSettings, darker: true)) + .clipShape(RoundedRectangle(cornerRadius: 8)) + .padding(.bottom) + + + } + .padding(20) + .frame(width: 500, height: 520) + } + +} +