├── .gitignore ├── LICENSE ├── Schemes.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── swiftpm │ │ └── Package.resolved └── xcuserdata │ └── oliver.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── Schemes ├── AppDelegate.swift ├── Credits.rtf ├── Info.plist ├── MainViewController.swift ├── MainWindowController.swift ├── Model │ └── Entry.swift ├── NIB Files │ ├── Base.lproj │ │ └── MainMenu.xib │ ├── MainViewController.xib │ └── MainWindowController.xib ├── Schemes.entitlements ├── Support Files │ └── Assets.xcassets │ │ ├── AccentColor.colorset │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── mac128.png │ │ ├── mac128@2x.png │ │ ├── mac16.png │ │ ├── mac16@2x.png │ │ ├── mac256.png │ │ ├── mac256@2x.png │ │ ├── mac32.png │ │ ├── mac32@2x.png │ │ ├── mac512.png │ │ └── mac512@2x.png │ │ └── Contents.json └── XPC Services │ ├── org.sparkle-project.Downloader.xpc │ └── Contents │ │ ├── Info.plist │ │ ├── MacOS │ │ └── org.sparkle-project.Downloader │ │ └── _CodeSignature │ │ └── CodeResources │ └── org.sparkle-project.InstallerLauncher.xpc │ └── Contents │ ├── Info.plist │ ├── MacOS │ ├── Autoupdate │ ├── Updater.app │ │ └── Contents │ │ │ ├── Info.plist │ │ │ ├── MacOS │ │ │ └── Updater │ │ │ ├── PkgInfo │ │ │ ├── Resources │ │ │ ├── Base.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── SUStatus.nib │ │ │ ├── ca.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── cs.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── da.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── de.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── el.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── es.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── fa.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── fi.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── fr.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── he.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── hr.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── is.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── it.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── ja.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── ko.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── nb.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── nl.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── pl.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── pt_BR.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── pt_PT.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── ro.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── ru.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── sk.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── sl.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── sv.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── th.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── tr.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── uk.lproj │ │ │ │ └── Sparkle.strings │ │ │ ├── zh_CN.lproj │ │ │ │ └── Sparkle.strings │ │ │ └── zh_TW.lproj │ │ │ │ └── Sparkle.strings │ │ │ └── _CodeSignature │ │ │ └── CodeResources │ └── org.sparkle-project.InstallerLauncher │ └── _CodeSignature │ └── CodeResources └── UnregisterSchemeHandler ├── Info.plist ├── UnregisterSchemeHandler.swift ├── UnregisterSchemeHandlerDelegate.swift ├── UnregisterSchemeHandlerProtocol.swift └── main.swift /.gitignore: -------------------------------------------------------------------------------- 1 | deploy 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Oliver Epper 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Schemes.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 55; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | A7006299270A1EA3007D13DD /* Entry.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7006298270A1EA3007D13DD /* Entry.swift */; }; 11 | A70F1262270B76ED00559406 /* UnregisterSchemeHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70F1261270B76ED00559406 /* UnregisterSchemeHandler.swift */; }; 12 | A70F1264270B76ED00559406 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70F1263270B76ED00559406 /* main.swift */; }; 13 | A70F1268270B76ED00559406 /* UnregisterSchemeHandler.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = A70F125D270B76ED00559406 /* UnregisterSchemeHandler.xpc */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 14 | A70F126C270B780800559406 /* UnregisterSchemeHandlerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70F125F270B76ED00559406 /* UnregisterSchemeHandlerProtocol.swift */; }; 15 | A70F126D270B7A1600559406 /* UnregisterSchemeHandlerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70F1260270B76ED00559406 /* UnregisterSchemeHandlerDelegate.swift */; }; 16 | A78D7CC02711991700CE2313 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = A78D7CBF2711991700CE2313 /* Credits.rtf */; }; 17 | A7CCF56A270A021B0087280A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CCF569270A021B0087280A /* AppDelegate.swift */; }; 18 | A7CCF56C270A021C0087280A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A7CCF56B270A021C0087280A /* Assets.xcassets */; }; 19 | A7CCF56F270A021C0087280A /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = A7CCF56D270A021C0087280A /* MainMenu.xib */; }; 20 | A7CCF57A270A025E0087280A /* MainWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CCF578270A025E0087280A /* MainWindowController.swift */; }; 21 | A7CCF57B270A025E0087280A /* MainWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A7CCF579270A025E0087280A /* MainWindowController.xib */; }; 22 | A7CCF57E270A026C0087280A /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CCF57C270A026C0087280A /* MainViewController.swift */; }; 23 | A7CCF57F270A026C0087280A /* MainViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A7CCF57D270A026C0087280A /* MainViewController.xib */; }; 24 | A7CCF582270A03440087280A /* Sparkle in Frameworks */ = {isa = PBXBuildFile; productRef = A7CCF581270A03440087280A /* Sparkle */; }; 25 | A7CCF589270A03FA0087280A /* org.sparkle-project.InstallerLauncher.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = A7CCF584270A03BC0087280A /* org.sparkle-project.InstallerLauncher.xpc */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 26 | A7CCF58A270A03FA0087280A /* org.sparkle-project.Downloader.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = A7CCF586270A03D60087280A /* org.sparkle-project.Downloader.xpc */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 27 | /* End PBXBuildFile section */ 28 | 29 | /* Begin PBXContainerItemProxy section */ 30 | A70F1266270B76ED00559406 /* PBXContainerItemProxy */ = { 31 | isa = PBXContainerItemProxy; 32 | containerPortal = A7CCF55E270A021B0087280A /* Project object */; 33 | proxyType = 1; 34 | remoteGlobalIDString = A70F125C270B76ED00559406; 35 | remoteInfo = UnregisterSchemeHandler; 36 | }; 37 | /* End PBXContainerItemProxy section */ 38 | 39 | /* Begin PBXCopyFilesBuildPhase section */ 40 | A7CCF588270A03F00087280A /* CopyFiles */ = { 41 | isa = PBXCopyFilesBuildPhase; 42 | buildActionMask = 2147483647; 43 | dstPath = "$(CONTENTS_FOLDER_PATH)/XPCServices"; 44 | dstSubfolderSpec = 16; 45 | files = ( 46 | A70F1268270B76ED00559406 /* UnregisterSchemeHandler.xpc in CopyFiles */, 47 | A7CCF589270A03FA0087280A /* org.sparkle-project.InstallerLauncher.xpc in CopyFiles */, 48 | A7CCF58A270A03FA0087280A /* org.sparkle-project.Downloader.xpc in CopyFiles */, 49 | ); 50 | runOnlyForDeploymentPostprocessing = 0; 51 | }; 52 | /* End PBXCopyFilesBuildPhase section */ 53 | 54 | /* Begin PBXFileReference section */ 55 | A7006298270A1EA3007D13DD /* Entry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Entry.swift; sourceTree = ""; }; 56 | A70F125D270B76ED00559406 /* UnregisterSchemeHandler.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = UnregisterSchemeHandler.xpc; sourceTree = BUILT_PRODUCTS_DIR; }; 57 | A70F125F270B76ED00559406 /* UnregisterSchemeHandlerProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnregisterSchemeHandlerProtocol.swift; sourceTree = ""; }; 58 | A70F1260270B76ED00559406 /* UnregisterSchemeHandlerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnregisterSchemeHandlerDelegate.swift; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; 59 | A70F1261270B76ED00559406 /* UnregisterSchemeHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnregisterSchemeHandler.swift; sourceTree = ""; }; 60 | A70F1263270B76ED00559406 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; 61 | A70F1265270B76ED00559406 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 62 | A78D7CBF2711991700CE2313 /* Credits.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = Credits.rtf; sourceTree = ""; }; 63 | A7CCF566270A021B0087280A /* Schemes.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Schemes.app; sourceTree = BUILT_PRODUCTS_DIR; }; 64 | A7CCF569270A021B0087280A /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 65 | A7CCF56B270A021C0087280A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 66 | A7CCF56E270A021C0087280A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; 67 | A7CCF570270A021C0087280A /* Schemes.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Schemes.entitlements; sourceTree = ""; }; 68 | A7CCF578270A025E0087280A /* MainWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainWindowController.swift; sourceTree = ""; }; 69 | A7CCF579270A025E0087280A /* MainWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindowController.xib; sourceTree = ""; }; 70 | A7CCF57C270A026C0087280A /* MainViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = ""; }; 71 | A7CCF57D270A026C0087280A /* MainViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainViewController.xib; sourceTree = ""; }; 72 | A7CCF584270A03BC0087280A /* org.sparkle-project.InstallerLauncher.xpc */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.xpc-service"; path = "org.sparkle-project.InstallerLauncher.xpc"; sourceTree = ""; }; 73 | A7CCF586270A03D60087280A /* org.sparkle-project.Downloader.xpc */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.xpc-service"; path = "org.sparkle-project.Downloader.xpc"; sourceTree = ""; }; 74 | A7CCF58B270A049A0087280A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 75 | /* End PBXFileReference section */ 76 | 77 | /* Begin PBXFrameworksBuildPhase section */ 78 | A70F125A270B76ED00559406 /* Frameworks */ = { 79 | isa = PBXFrameworksBuildPhase; 80 | buildActionMask = 2147483647; 81 | files = ( 82 | ); 83 | runOnlyForDeploymentPostprocessing = 0; 84 | }; 85 | A7CCF563270A021B0087280A /* Frameworks */ = { 86 | isa = PBXFrameworksBuildPhase; 87 | buildActionMask = 2147483647; 88 | files = ( 89 | A7CCF582270A03440087280A /* Sparkle in Frameworks */, 90 | ); 91 | runOnlyForDeploymentPostprocessing = 0; 92 | }; 93 | /* End PBXFrameworksBuildPhase section */ 94 | 95 | /* Begin PBXGroup section */ 96 | A7006297270A1E6D007D13DD /* Model */ = { 97 | isa = PBXGroup; 98 | children = ( 99 | A7006298270A1EA3007D13DD /* Entry.swift */, 100 | ); 101 | path = Model; 102 | sourceTree = ""; 103 | }; 104 | A70F125E270B76ED00559406 /* UnregisterSchemeHandler */ = { 105 | isa = PBXGroup; 106 | children = ( 107 | A70F125F270B76ED00559406 /* UnregisterSchemeHandlerProtocol.swift */, 108 | A70F1260270B76ED00559406 /* UnregisterSchemeHandlerDelegate.swift */, 109 | A70F1261270B76ED00559406 /* UnregisterSchemeHandler.swift */, 110 | A70F1263270B76ED00559406 /* main.swift */, 111 | A70F1265270B76ED00559406 /* Info.plist */, 112 | ); 113 | path = UnregisterSchemeHandler; 114 | sourceTree = ""; 115 | }; 116 | A7CCF55D270A021B0087280A = { 117 | isa = PBXGroup; 118 | children = ( 119 | A7CCF568270A021B0087280A /* Schemes */, 120 | A70F125E270B76ED00559406 /* UnregisterSchemeHandler */, 121 | A7CCF567270A021B0087280A /* Products */, 122 | ); 123 | sourceTree = ""; 124 | }; 125 | A7CCF567270A021B0087280A /* Products */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | A7CCF566270A021B0087280A /* Schemes.app */, 129 | A70F125D270B76ED00559406 /* UnregisterSchemeHandler.xpc */, 130 | ); 131 | name = Products; 132 | sourceTree = ""; 133 | }; 134 | A7CCF568270A021B0087280A /* Schemes */ = { 135 | isa = PBXGroup; 136 | children = ( 137 | A7CCF58B270A049A0087280A /* Info.plist */, 138 | A78D7CBF2711991700CE2313 /* Credits.rtf */, 139 | A7CCF583270A037C0087280A /* XPC Services */, 140 | A7CCF577270A02440087280A /* Support Files */, 141 | A7006297270A1E6D007D13DD /* Model */, 142 | A7CCF576270A023D0087280A /* NIB Files */, 143 | A7CCF569270A021B0087280A /* AppDelegate.swift */, 144 | A7CCF578270A025E0087280A /* MainWindowController.swift */, 145 | A7CCF57C270A026C0087280A /* MainViewController.swift */, 146 | A7CCF570270A021C0087280A /* Schemes.entitlements */, 147 | ); 148 | path = Schemes; 149 | sourceTree = ""; 150 | }; 151 | A7CCF576270A023D0087280A /* NIB Files */ = { 152 | isa = PBXGroup; 153 | children = ( 154 | A7CCF56D270A021C0087280A /* MainMenu.xib */, 155 | A7CCF579270A025E0087280A /* MainWindowController.xib */, 156 | A7CCF57D270A026C0087280A /* MainViewController.xib */, 157 | ); 158 | path = "NIB Files"; 159 | sourceTree = ""; 160 | }; 161 | A7CCF577270A02440087280A /* Support Files */ = { 162 | isa = PBXGroup; 163 | children = ( 164 | A7CCF56B270A021C0087280A /* Assets.xcassets */, 165 | ); 166 | path = "Support Files"; 167 | sourceTree = ""; 168 | }; 169 | A7CCF583270A037C0087280A /* XPC Services */ = { 170 | isa = PBXGroup; 171 | children = ( 172 | A7CCF584270A03BC0087280A /* org.sparkle-project.InstallerLauncher.xpc */, 173 | A7CCF586270A03D60087280A /* org.sparkle-project.Downloader.xpc */, 174 | ); 175 | path = "XPC Services"; 176 | sourceTree = ""; 177 | }; 178 | /* End PBXGroup section */ 179 | 180 | /* Begin PBXNativeTarget section */ 181 | A70F125C270B76ED00559406 /* UnregisterSchemeHandler */ = { 182 | isa = PBXNativeTarget; 183 | buildConfigurationList = A70F126B270B76ED00559406 /* Build configuration list for PBXNativeTarget "UnregisterSchemeHandler" */; 184 | buildPhases = ( 185 | A70F1259270B76ED00559406 /* Sources */, 186 | A70F125A270B76ED00559406 /* Frameworks */, 187 | A70F125B270B76ED00559406 /* Resources */, 188 | ); 189 | buildRules = ( 190 | ); 191 | dependencies = ( 192 | ); 193 | name = UnregisterSchemeHandler; 194 | productName = UnregisterSchemeHandler; 195 | productReference = A70F125D270B76ED00559406 /* UnregisterSchemeHandler.xpc */; 196 | productType = "com.apple.product-type.xpc-service"; 197 | }; 198 | A7CCF565270A021B0087280A /* Schemes */ = { 199 | isa = PBXNativeTarget; 200 | buildConfigurationList = A7CCF573270A021C0087280A /* Build configuration list for PBXNativeTarget "Schemes" */; 201 | buildPhases = ( 202 | A7CCF562270A021B0087280A /* Sources */, 203 | A7CCF563270A021B0087280A /* Frameworks */, 204 | A7CCF564270A021B0087280A /* Resources */, 205 | A7CCF588270A03F00087280A /* CopyFiles */, 206 | ); 207 | buildRules = ( 208 | ); 209 | dependencies = ( 210 | A70F1267270B76ED00559406 /* PBXTargetDependency */, 211 | ); 212 | name = Schemes; 213 | packageProductDependencies = ( 214 | A7CCF581270A03440087280A /* Sparkle */, 215 | ); 216 | productName = Schemes; 217 | productReference = A7CCF566270A021B0087280A /* Schemes.app */; 218 | productType = "com.apple.product-type.application"; 219 | }; 220 | /* End PBXNativeTarget section */ 221 | 222 | /* Begin PBXProject section */ 223 | A7CCF55E270A021B0087280A /* Project object */ = { 224 | isa = PBXProject; 225 | attributes = { 226 | BuildIndependentTargetsInParallel = 1; 227 | LastSwiftUpdateCheck = 1300; 228 | LastUpgradeCheck = 1300; 229 | TargetAttributes = { 230 | A70F125C270B76ED00559406 = { 231 | CreatedOnToolsVersion = 13.0; 232 | }; 233 | A7CCF565270A021B0087280A = { 234 | CreatedOnToolsVersion = 13.0; 235 | }; 236 | }; 237 | }; 238 | buildConfigurationList = A7CCF561270A021B0087280A /* Build configuration list for PBXProject "Schemes" */; 239 | compatibilityVersion = "Xcode 13.0"; 240 | developmentRegion = en; 241 | hasScannedForEncodings = 0; 242 | knownRegions = ( 243 | en, 244 | Base, 245 | ); 246 | mainGroup = A7CCF55D270A021B0087280A; 247 | packageReferences = ( 248 | A7CCF580270A03440087280A /* XCRemoteSwiftPackageReference "Sparkle" */, 249 | ); 250 | productRefGroup = A7CCF567270A021B0087280A /* Products */; 251 | projectDirPath = ""; 252 | projectRoot = ""; 253 | targets = ( 254 | A7CCF565270A021B0087280A /* Schemes */, 255 | A70F125C270B76ED00559406 /* UnregisterSchemeHandler */, 256 | ); 257 | }; 258 | /* End PBXProject section */ 259 | 260 | /* Begin PBXResourcesBuildPhase section */ 261 | A70F125B270B76ED00559406 /* Resources */ = { 262 | isa = PBXResourcesBuildPhase; 263 | buildActionMask = 2147483647; 264 | files = ( 265 | ); 266 | runOnlyForDeploymentPostprocessing = 0; 267 | }; 268 | A7CCF564270A021B0087280A /* Resources */ = { 269 | isa = PBXResourcesBuildPhase; 270 | buildActionMask = 2147483647; 271 | files = ( 272 | A78D7CC02711991700CE2313 /* Credits.rtf in Resources */, 273 | A7CCF56C270A021C0087280A /* Assets.xcassets in Resources */, 274 | A7CCF57B270A025E0087280A /* MainWindowController.xib in Resources */, 275 | A7CCF56F270A021C0087280A /* MainMenu.xib in Resources */, 276 | A7CCF57F270A026C0087280A /* MainViewController.xib in Resources */, 277 | ); 278 | runOnlyForDeploymentPostprocessing = 0; 279 | }; 280 | /* End PBXResourcesBuildPhase section */ 281 | 282 | /* Begin PBXSourcesBuildPhase section */ 283 | A70F1259270B76ED00559406 /* Sources */ = { 284 | isa = PBXSourcesBuildPhase; 285 | buildActionMask = 2147483647; 286 | files = ( 287 | A70F1264270B76ED00559406 /* main.swift in Sources */, 288 | A70F1262270B76ED00559406 /* UnregisterSchemeHandler.swift in Sources */, 289 | A70F126D270B7A1600559406 /* UnregisterSchemeHandlerDelegate.swift in Sources */, 290 | A70F126C270B780800559406 /* UnregisterSchemeHandlerProtocol.swift in Sources */, 291 | ); 292 | runOnlyForDeploymentPostprocessing = 0; 293 | }; 294 | A7CCF562270A021B0087280A /* Sources */ = { 295 | isa = PBXSourcesBuildPhase; 296 | buildActionMask = 2147483647; 297 | files = ( 298 | A7006299270A1EA3007D13DD /* Entry.swift in Sources */, 299 | A7CCF57E270A026C0087280A /* MainViewController.swift in Sources */, 300 | A7CCF57A270A025E0087280A /* MainWindowController.swift in Sources */, 301 | A7CCF56A270A021B0087280A /* AppDelegate.swift in Sources */, 302 | ); 303 | runOnlyForDeploymentPostprocessing = 0; 304 | }; 305 | /* End PBXSourcesBuildPhase section */ 306 | 307 | /* Begin PBXTargetDependency section */ 308 | A70F1267270B76ED00559406 /* PBXTargetDependency */ = { 309 | isa = PBXTargetDependency; 310 | target = A70F125C270B76ED00559406 /* UnregisterSchemeHandler */; 311 | targetProxy = A70F1266270B76ED00559406 /* PBXContainerItemProxy */; 312 | }; 313 | /* End PBXTargetDependency section */ 314 | 315 | /* Begin PBXVariantGroup section */ 316 | A7CCF56D270A021C0087280A /* MainMenu.xib */ = { 317 | isa = PBXVariantGroup; 318 | children = ( 319 | A7CCF56E270A021C0087280A /* Base */, 320 | ); 321 | name = MainMenu.xib; 322 | sourceTree = ""; 323 | }; 324 | /* End PBXVariantGroup section */ 325 | 326 | /* Begin XCBuildConfiguration section */ 327 | A70F1269270B76ED00559406 /* Debug */ = { 328 | isa = XCBuildConfiguration; 329 | buildSettings = { 330 | CODE_SIGN_STYLE = Automatic; 331 | COMBINE_HIDPI_IMAGES = YES; 332 | CURRENT_PROJECT_VERSION = 3; 333 | DEVELOPMENT_TEAM = AWJ83G3EPY; 334 | ENABLE_HARDENED_RUNTIME = YES; 335 | GENERATE_INFOPLIST_FILE = YES; 336 | INFOPLIST_FILE = UnregisterSchemeHandler/Info.plist; 337 | INFOPLIST_KEY_CFBundleDisplayName = UnregisterSchemeHandler; 338 | INFOPLIST_KEY_NSHumanReadableCopyright = ""; 339 | MARKETING_VERSION = 0.2; 340 | PRODUCT_BUNDLE_IDENTIFIER = "de.oliver-epper.UnregisterSchemeHandler"; 341 | PRODUCT_NAME = "$(TARGET_NAME)"; 342 | SKIP_INSTALL = YES; 343 | SWIFT_EMIT_LOC_STRINGS = YES; 344 | SWIFT_INSTALL_OBJC_HEADER = NO; 345 | SWIFT_OBJC_INTERFACE_HEADER_NAME = ""; 346 | SWIFT_VERSION = 5.0; 347 | }; 348 | name = Debug; 349 | }; 350 | A70F126A270B76ED00559406 /* Release */ = { 351 | isa = XCBuildConfiguration; 352 | buildSettings = { 353 | CODE_SIGN_STYLE = Automatic; 354 | COMBINE_HIDPI_IMAGES = YES; 355 | CURRENT_PROJECT_VERSION = 3; 356 | DEVELOPMENT_TEAM = AWJ83G3EPY; 357 | ENABLE_HARDENED_RUNTIME = YES; 358 | GENERATE_INFOPLIST_FILE = YES; 359 | INFOPLIST_FILE = UnregisterSchemeHandler/Info.plist; 360 | INFOPLIST_KEY_CFBundleDisplayName = UnregisterSchemeHandler; 361 | INFOPLIST_KEY_NSHumanReadableCopyright = ""; 362 | MARKETING_VERSION = 0.2; 363 | PRODUCT_BUNDLE_IDENTIFIER = "de.oliver-epper.UnregisterSchemeHandler"; 364 | PRODUCT_NAME = "$(TARGET_NAME)"; 365 | SKIP_INSTALL = YES; 366 | SWIFT_EMIT_LOC_STRINGS = YES; 367 | SWIFT_INSTALL_OBJC_HEADER = NO; 368 | SWIFT_OBJC_INTERFACE_HEADER_NAME = ""; 369 | SWIFT_VERSION = 5.0; 370 | }; 371 | name = Release; 372 | }; 373 | A7CCF571270A021C0087280A /* Debug */ = { 374 | isa = XCBuildConfiguration; 375 | buildSettings = { 376 | ALWAYS_SEARCH_USER_PATHS = NO; 377 | CLANG_ANALYZER_NONNULL = YES; 378 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 379 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; 380 | CLANG_CXX_LIBRARY = "libc++"; 381 | CLANG_ENABLE_MODULES = YES; 382 | CLANG_ENABLE_OBJC_ARC = YES; 383 | CLANG_ENABLE_OBJC_WEAK = YES; 384 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 385 | CLANG_WARN_BOOL_CONVERSION = YES; 386 | CLANG_WARN_COMMA = YES; 387 | CLANG_WARN_CONSTANT_CONVERSION = YES; 388 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 389 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 390 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 391 | CLANG_WARN_EMPTY_BODY = YES; 392 | CLANG_WARN_ENUM_CONVERSION = YES; 393 | CLANG_WARN_INFINITE_RECURSION = YES; 394 | CLANG_WARN_INT_CONVERSION = YES; 395 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 396 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 397 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 398 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 399 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 400 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 401 | CLANG_WARN_STRICT_PROTOTYPES = YES; 402 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 403 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 404 | CLANG_WARN_UNREACHABLE_CODE = YES; 405 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 406 | COPY_PHASE_STRIP = NO; 407 | DEBUG_INFORMATION_FORMAT = dwarf; 408 | ENABLE_STRICT_OBJC_MSGSEND = YES; 409 | ENABLE_TESTABILITY = YES; 410 | GCC_C_LANGUAGE_STANDARD = gnu11; 411 | GCC_DYNAMIC_NO_PIC = NO; 412 | GCC_NO_COMMON_BLOCKS = YES; 413 | GCC_OPTIMIZATION_LEVEL = 0; 414 | GCC_PREPROCESSOR_DEFINITIONS = ( 415 | "DEBUG=1", 416 | "$(inherited)", 417 | ); 418 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 419 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 420 | GCC_WARN_UNDECLARED_SELECTOR = YES; 421 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 422 | GCC_WARN_UNUSED_FUNCTION = YES; 423 | GCC_WARN_UNUSED_VARIABLE = YES; 424 | MACOSX_DEPLOYMENT_TARGET = 11.3; 425 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 426 | MTL_FAST_MATH = YES; 427 | ONLY_ACTIVE_ARCH = YES; 428 | SDKROOT = macosx; 429 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 430 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 431 | }; 432 | name = Debug; 433 | }; 434 | A7CCF572270A021C0087280A /* Release */ = { 435 | isa = XCBuildConfiguration; 436 | buildSettings = { 437 | ALWAYS_SEARCH_USER_PATHS = NO; 438 | CLANG_ANALYZER_NONNULL = YES; 439 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 440 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; 441 | CLANG_CXX_LIBRARY = "libc++"; 442 | CLANG_ENABLE_MODULES = YES; 443 | CLANG_ENABLE_OBJC_ARC = YES; 444 | CLANG_ENABLE_OBJC_WEAK = YES; 445 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 446 | CLANG_WARN_BOOL_CONVERSION = YES; 447 | CLANG_WARN_COMMA = YES; 448 | CLANG_WARN_CONSTANT_CONVERSION = YES; 449 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 450 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 451 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 452 | CLANG_WARN_EMPTY_BODY = YES; 453 | CLANG_WARN_ENUM_CONVERSION = YES; 454 | CLANG_WARN_INFINITE_RECURSION = YES; 455 | CLANG_WARN_INT_CONVERSION = YES; 456 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 457 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 458 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 459 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 460 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 461 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 462 | CLANG_WARN_STRICT_PROTOTYPES = YES; 463 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 464 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 465 | CLANG_WARN_UNREACHABLE_CODE = YES; 466 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 467 | COPY_PHASE_STRIP = NO; 468 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 469 | ENABLE_NS_ASSERTIONS = NO; 470 | ENABLE_STRICT_OBJC_MSGSEND = YES; 471 | GCC_C_LANGUAGE_STANDARD = gnu11; 472 | GCC_NO_COMMON_BLOCKS = YES; 473 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 474 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 475 | GCC_WARN_UNDECLARED_SELECTOR = YES; 476 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 477 | GCC_WARN_UNUSED_FUNCTION = YES; 478 | GCC_WARN_UNUSED_VARIABLE = YES; 479 | MACOSX_DEPLOYMENT_TARGET = 11.3; 480 | MTL_ENABLE_DEBUG_INFO = NO; 481 | MTL_FAST_MATH = YES; 482 | SDKROOT = macosx; 483 | SWIFT_COMPILATION_MODE = wholemodule; 484 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 485 | }; 486 | name = Release; 487 | }; 488 | A7CCF574270A021C0087280A /* Debug */ = { 489 | isa = XCBuildConfiguration; 490 | buildSettings = { 491 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 492 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 493 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 494 | CODE_SIGN_ENTITLEMENTS = Schemes/Schemes.entitlements; 495 | CODE_SIGN_STYLE = Automatic; 496 | COMBINE_HIDPI_IMAGES = YES; 497 | CURRENT_PROJECT_VERSION = 9; 498 | DEVELOPMENT_TEAM = AWJ83G3EPY; 499 | ENABLE_HARDENED_RUNTIME = YES; 500 | GENERATE_INFOPLIST_FILE = YES; 501 | INFOPLIST_FILE = Schemes/Info.plist; 502 | INFOPLIST_KEY_CFBundleDisplayName = ""; 503 | INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; 504 | INFOPLIST_KEY_NSHumanReadableCopyright = "Oliver Epper"; 505 | INFOPLIST_KEY_NSMainNibFile = MainMenu; 506 | INFOPLIST_KEY_NSPrincipalClass = NSApplication; 507 | LD_RUNPATH_SEARCH_PATHS = ( 508 | "$(inherited)", 509 | "@executable_path/../Frameworks", 510 | ); 511 | MARKETING_VERSION = 0.3.4; 512 | PRODUCT_BUNDLE_IDENTIFIER = "de.oliver-epper.Schemes"; 513 | PRODUCT_NAME = "$(TARGET_NAME)"; 514 | SWIFT_EMIT_LOC_STRINGS = YES; 515 | SWIFT_VERSION = 5.0; 516 | }; 517 | name = Debug; 518 | }; 519 | A7CCF575270A021C0087280A /* Release */ = { 520 | isa = XCBuildConfiguration; 521 | buildSettings = { 522 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 523 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 524 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 525 | CODE_SIGN_ENTITLEMENTS = Schemes/Schemes.entitlements; 526 | CODE_SIGN_STYLE = Automatic; 527 | COMBINE_HIDPI_IMAGES = YES; 528 | CURRENT_PROJECT_VERSION = 9; 529 | DEVELOPMENT_TEAM = AWJ83G3EPY; 530 | ENABLE_HARDENED_RUNTIME = YES; 531 | GENERATE_INFOPLIST_FILE = YES; 532 | INFOPLIST_FILE = Schemes/Info.plist; 533 | INFOPLIST_KEY_CFBundleDisplayName = ""; 534 | INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; 535 | INFOPLIST_KEY_NSHumanReadableCopyright = "Oliver Epper"; 536 | INFOPLIST_KEY_NSMainNibFile = MainMenu; 537 | INFOPLIST_KEY_NSPrincipalClass = NSApplication; 538 | LD_RUNPATH_SEARCH_PATHS = ( 539 | "$(inherited)", 540 | "@executable_path/../Frameworks", 541 | ); 542 | MARKETING_VERSION = 0.3.4; 543 | PRODUCT_BUNDLE_IDENTIFIER = "de.oliver-epper.Schemes"; 544 | PRODUCT_NAME = "$(TARGET_NAME)"; 545 | SWIFT_EMIT_LOC_STRINGS = YES; 546 | SWIFT_VERSION = 5.0; 547 | }; 548 | name = Release; 549 | }; 550 | /* End XCBuildConfiguration section */ 551 | 552 | /* Begin XCConfigurationList section */ 553 | A70F126B270B76ED00559406 /* Build configuration list for PBXNativeTarget "UnregisterSchemeHandler" */ = { 554 | isa = XCConfigurationList; 555 | buildConfigurations = ( 556 | A70F1269270B76ED00559406 /* Debug */, 557 | A70F126A270B76ED00559406 /* Release */, 558 | ); 559 | defaultConfigurationIsVisible = 0; 560 | defaultConfigurationName = Release; 561 | }; 562 | A7CCF561270A021B0087280A /* Build configuration list for PBXProject "Schemes" */ = { 563 | isa = XCConfigurationList; 564 | buildConfigurations = ( 565 | A7CCF571270A021C0087280A /* Debug */, 566 | A7CCF572270A021C0087280A /* Release */, 567 | ); 568 | defaultConfigurationIsVisible = 0; 569 | defaultConfigurationName = Release; 570 | }; 571 | A7CCF573270A021C0087280A /* Build configuration list for PBXNativeTarget "Schemes" */ = { 572 | isa = XCConfigurationList; 573 | buildConfigurations = ( 574 | A7CCF574270A021C0087280A /* Debug */, 575 | A7CCF575270A021C0087280A /* Release */, 576 | ); 577 | defaultConfigurationIsVisible = 0; 578 | defaultConfigurationName = Release; 579 | }; 580 | /* End XCConfigurationList section */ 581 | 582 | /* Begin XCRemoteSwiftPackageReference section */ 583 | A7CCF580270A03440087280A /* XCRemoteSwiftPackageReference "Sparkle" */ = { 584 | isa = XCRemoteSwiftPackageReference; 585 | repositoryURL = "https://github.com/sparkle-project/Sparkle"; 586 | requirement = { 587 | branch = 2.x; 588 | kind = branch; 589 | }; 590 | }; 591 | /* End XCRemoteSwiftPackageReference section */ 592 | 593 | /* Begin XCSwiftPackageProductDependency section */ 594 | A7CCF581270A03440087280A /* Sparkle */ = { 595 | isa = XCSwiftPackageProductDependency; 596 | package = A7CCF580270A03440087280A /* XCRemoteSwiftPackageReference "Sparkle" */; 597 | productName = Sparkle; 598 | }; 599 | /* End XCSwiftPackageProductDependency section */ 600 | }; 601 | rootObject = A7CCF55E270A021B0087280A /* Project object */; 602 | } 603 | -------------------------------------------------------------------------------- /Schemes.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Schemes.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Schemes.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "object": { 3 | "pins": [ 4 | { 5 | "package": "Sparkle", 6 | "repositoryURL": "https://github.com/sparkle-project/Sparkle", 7 | "state": { 8 | "branch": "2.x", 9 | "revision": "a9d5a4276886de9a905e542a9dc07bf8716b9fda", 10 | "version": null 11 | } 12 | } 13 | ] 14 | }, 15 | "version": 1 16 | } 17 | -------------------------------------------------------------------------------- /Schemes.xcodeproj/xcuserdata/oliver.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Schemes.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | UnregisterSchemeHandler.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 1 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Schemes/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // Schemes 4 | // 5 | // Created by Oliver Epper on 03.10.21. 6 | // 7 | 8 | import Cocoa 9 | 10 | @main 11 | class AppDelegate: NSObject, NSApplicationDelegate { 12 | 13 | lazy var mainWindowController = MainWindowController(windowNibName: .init("MainWindowController")) 14 | 15 | func applicationDidFinishLaunching(_ aNotification: Notification) { 16 | NSURLValueTransformer.register() 17 | mainWindowController.window?.title = ProcessInfo.processInfo.processName 18 | mainWindowController.showWindow(nil) 19 | } 20 | 21 | func applicationWillTerminate(_ aNotification: Notification) { 22 | } 23 | 24 | func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { 25 | return true 26 | } 27 | 28 | func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { 29 | true 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /Schemes/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf2580 2 | \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | {\*\expandedcolortbl;;} 5 | \margl1440\margr1440\vieww9000\viewh8400\viewkind0 6 | \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0 7 | {\field{\*\fldinst{HYPERLINK "https://oliver-epper.de/apps/schemes"}}{\fldrslt 8 | \f0\fs24 \cf0 https://oliver-epper.de/apps/schemes}}} -------------------------------------------------------------------------------- /Schemes/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SUFeedURL 6 | https://oliver-epper.de/Schemes/appcast.xml 7 | SUPublicEDKey 8 | M/1stlLNXIMMfh7wvbE9RoY/WWxMslNjVTyXrpoNIwg= 9 | 10 | 11 | -------------------------------------------------------------------------------- /Schemes/MainViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainViewController.swift 3 | // Schemes 4 | // 5 | // Created by Oliver Epper on 03.10.21. 6 | // 7 | 8 | import Cocoa 9 | import UnregisterSchemeHandler 10 | import OSLog 11 | 12 | private let handle = dlopen(nil, RTLD_NOW) 13 | private let fnLSCopySchemesAndHandlerURLs = dlsym(handle, "_LSCopySchemesAndHandlerURLs") 14 | typealias fnLSCopySchemesAndHandlerURLsType = @convention(c) (UnsafeMutablePointer, UnsafeMutablePointer) -> OSStatus 15 | 16 | class MainViewController: NSViewController { 17 | @IBOutlet var arrayController: NSArrayController! 18 | 19 | private var token: NSObjectProtocol? 20 | 21 | @objc lazy var entries: NSMutableArray = { 22 | let entries: NSMutableArray = [] 23 | loadData(into: entries) 24 | return entries 25 | }() 26 | 27 | override func viewDidLoad() { 28 | super.viewDidLoad() 29 | 30 | token = DistributedNotificationCenter.default().addObserver(forName: .init("com.apple.LaunchServices.applicationRegistered"), object: nil, queue: nil, using: { _ in 31 | self.reloadData() 32 | }) 33 | } 34 | 35 | override func viewWillDisappear() { 36 | if let token = token { 37 | DistributedNotificationCenter.default().removeObserver(token) 38 | } 39 | } 40 | 41 | private func loadData(into array: NSMutableArray) { 42 | let LSCopySchemesAndHandlerURLs = unsafeBitCast(fnLSCopySchemesAndHandlerURLs, to: fnLSCopySchemesAndHandlerURLsType.self) 43 | 44 | var schemes: NSArray! 45 | var handlers: NSArray! 46 | 47 | withUnsafeMutablePointer(to: &schemes) { s_ptr in 48 | withUnsafeMutablePointer(to: &handlers) { h_ptr in 49 | if (LSCopySchemesAndHandlerURLs(s_ptr, h_ptr) != 0) { 50 | os_log("Cannot list schemes and handlers", type: .error) 51 | } 52 | } 53 | } 54 | 55 | for (idx, scheme) in schemes.enumerated() { 56 | array.add(Entry(scheme: scheme as! String, handler: handlers[idx] as! URL)) 57 | } 58 | } 59 | 60 | private func reloadData() { 61 | os_log("Going to reload data", type: .debug) 62 | entries.removeAllObjects() 63 | loadData(into: entries) 64 | arrayController.rearrangeObjects() 65 | } 66 | 67 | private func unregister() { 68 | arrayController.selectionIndexes.forEach { idx in 69 | let entry = (arrayController.arrangedObjects as! NSArray)[idx] as! Entry 70 | os_log("Going to unregister %{public}@", type: .info, entry.handler.path) 71 | UnregisterClient.unregiser(entry.handler) { [weak self] result in 72 | DispatchQueue.main.async { 73 | self?.reloadData() 74 | } 75 | } 76 | } 77 | } 78 | 79 | @IBAction func reloadData(_ sender: Any) { 80 | reloadData() 81 | } 82 | 83 | @IBAction func unregister(_ sender: Any) { 84 | unregister() 85 | } 86 | } 87 | 88 | public final class NSURLValueTransformer: ValueTransformer { 89 | public override class func transformedValueClass() -> AnyClass { 90 | return NSURL.self 91 | } 92 | 93 | public override class func allowsReverseTransformation() -> Bool { 94 | true 95 | } 96 | 97 | public override func transformedValue(_ value: Any?) -> Any? { 98 | guard let url = value as? NSURL else { return nil } 99 | return url.path 100 | } 101 | 102 | public override func reverseTransformedValue(_ value: Any?) -> Any? { 103 | guard let str = value as? String else { return nil } 104 | return NSURL(string: str) 105 | } 106 | } 107 | 108 | extension NSURLValueTransformer { 109 | static let name = NSValueTransformerName(String(describing: NSURLValueTransformer.self)) 110 | 111 | public static func register() { 112 | os_log("Going to register ValueTransformer %{public}@", type: .debug, name as CVarArg) 113 | let transformer = NSURLValueTransformer() 114 | ValueTransformer.setValueTransformer(transformer, forName: name) 115 | } 116 | } 117 | 118 | final class UnregisterClient { 119 | class func unregiser(_ url: URL, reply: @escaping (Int32) -> Void) { 120 | let connection = NSXPCConnection(serviceName: "de.oliver-epper.UnregisterSchemeHandler") 121 | connection.remoteObjectInterface = NSXPCInterface(with: UnregisterSchemeHandlerProtocol.self) 122 | connection.resume() 123 | 124 | let service = connection.remoteObjectProxyWithErrorHandler { error in 125 | os_log("Error setting up XPC Proxy object: %{public}@") 126 | } as? UnregisterSchemeHandlerProtocol 127 | 128 | service?.unregister(url, withReply: reply) 129 | } 130 | } 131 | -------------------------------------------------------------------------------- /Schemes/MainWindowController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainWindowController.swift 3 | // Schemes 4 | // 5 | // Created by Oliver Epper on 03.10.21. 6 | // 7 | 8 | import Cocoa 9 | 10 | class MainWindowController: NSWindowController { 11 | 12 | override func windowDidLoad() { 13 | super.windowDidLoad() 14 | 15 | contentViewController = MainViewController() 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Schemes/Model/Entry.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Entry.swift 3 | // Schemes 4 | // 5 | // Created by Oliver Epper on 03.10.21. 6 | // 7 | 8 | import Foundation 9 | 10 | final class Entry: NSObject { 11 | @objc var scheme: String 12 | @objc var handler: URL 13 | 14 | init(scheme: String, handler: URL) { 15 | self.scheme = scheme 16 | self.handler = handler 17 | } 18 | 19 | override init() { 20 | self.scheme = "scheme" 21 | self.handler = URL(string: "file:///Applications/")! 22 | super.init() 23 | } 24 | } 25 | 26 | extension NSURL { 27 | @objc func compare(_ other: NSURL) -> ComparisonResult { 28 | (self.absoluteString ?? "").compare(other.absoluteString ?? "") 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Schemes/NIB Files/Base.lproj/MainMenu.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | Default 542 | 543 | 544 | 545 | 546 | 547 | 548 | Left to Right 549 | 550 | 551 | 552 | 553 | 554 | 555 | Right to Left 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | Default 567 | 568 | 569 | 570 | 571 | 572 | 573 | Left to Right 574 | 575 | 576 | 577 | 578 | 579 | 580 | Right to Left 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | -------------------------------------------------------------------------------- /Schemes/NIB Files/MainViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | NSURLValueTransformer 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | predicate 98 | (scheme contains $value) or (handler.absoluteString contains[cd] $value) 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | scheme 118 | handler 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | -------------------------------------------------------------------------------- /Schemes/NIB Files/MainWindowController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /Schemes/Schemes.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.files.user-selected.read-only 8 | 9 | com.apple.security.temporary-exception.mach-lookup.global-name 10 | 11 | $(PRODUCT_BUNDLE_IDENTIFIER)-spks 12 | $(PRODUCT_BUNDLE_IDENTIFIER)-spki 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Schemes/Support Files/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "mac16.png", 5 | "idiom" : "mac", 6 | "scale" : "1x", 7 | "size" : "16x16" 8 | }, 9 | { 10 | "filename" : "mac16@2x.png", 11 | "idiom" : "mac", 12 | "scale" : "2x", 13 | "size" : "16x16" 14 | }, 15 | { 16 | "filename" : "mac32.png", 17 | "idiom" : "mac", 18 | "scale" : "1x", 19 | "size" : "32x32" 20 | }, 21 | { 22 | "filename" : "mac32@2x.png", 23 | "idiom" : "mac", 24 | "scale" : "2x", 25 | "size" : "32x32" 26 | }, 27 | { 28 | "filename" : "mac128.png", 29 | "idiom" : "mac", 30 | "scale" : "1x", 31 | "size" : "128x128" 32 | }, 33 | { 34 | "filename" : "mac128@2x.png", 35 | "idiom" : "mac", 36 | "scale" : "2x", 37 | "size" : "128x128" 38 | }, 39 | { 40 | "filename" : "mac256.png", 41 | "idiom" : "mac", 42 | "scale" : "1x", 43 | "size" : "256x256" 44 | }, 45 | { 46 | "filename" : "mac256@2x.png", 47 | "idiom" : "mac", 48 | "scale" : "2x", 49 | "size" : "256x256" 50 | }, 51 | { 52 | "filename" : "mac512.png", 53 | "idiom" : "mac", 54 | "scale" : "1x", 55 | "size" : "512x512" 56 | }, 57 | { 58 | "filename" : "mac512@2x.png", 59 | "idiom" : "mac", 60 | "scale" : "2x", 61 | "size" : "512x512" 62 | } 63 | ], 64 | "info" : { 65 | "author" : "xcode", 66 | "version" : 1 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac128.png -------------------------------------------------------------------------------- /Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac128@2x.png -------------------------------------------------------------------------------- /Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac16.png -------------------------------------------------------------------------------- /Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac16@2x.png -------------------------------------------------------------------------------- /Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac256.png -------------------------------------------------------------------------------- /Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac256@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac256@2x.png -------------------------------------------------------------------------------- /Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac32.png -------------------------------------------------------------------------------- /Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac32@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac32@2x.png -------------------------------------------------------------------------------- /Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac512.png -------------------------------------------------------------------------------- /Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac512@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/Support Files/Assets.xcassets/AppIcon.appiconset/mac512@2x.png -------------------------------------------------------------------------------- /Schemes/Support Files/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.Downloader.xpc/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 20G165 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleExecutable 10 | org.sparkle-project.Downloader 11 | CFBundleIdentifier 12 | org.sparkle-project.Downloader 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | org.sparkle-project.Downloader 17 | CFBundlePackageType 18 | XPC! 19 | CFBundleShortVersionString 20 | 2.0.0-beta.3 21 | CFBundleSignature 22 | ???? 23 | CFBundleSupportedPlatforms 24 | 25 | MacOSX 26 | 27 | CFBundleVersion 28 | 2003 29 | DTCompiler 30 | com.apple.compilers.llvm.clang.1_0 31 | DTPlatformBuild 32 | 12E507 33 | DTPlatformName 34 | macosx 35 | DTPlatformVersion 36 | 11.3 37 | DTSDKBuild 38 | 20E214 39 | DTSDKName 40 | macosx11.3 41 | DTXcode 42 | 1251 43 | DTXcodeBuild 44 | 12E507 45 | LSMinimumSystemVersion 46 | 10.11 47 | NSAppTransportSecurity 48 | 49 | NSAllowsArbitraryLoads 50 | 51 | 52 | NSHumanReadableCopyright 53 | Copyright © 2016 Sparkle Project. All rights reserved. 54 | XPCService 55 | 56 | RunLoopType 57 | NSRunLoop 58 | ServiceType 59 | Application 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.Downloader.xpc/Contents/MacOS/org.sparkle-project.Downloader: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.Downloader.xpc/Contents/MacOS/org.sparkle-project.Downloader -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.Downloader.xpc/Contents/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | files2 8 | 9 | rules 10 | 11 | ^Resources/ 12 | 13 | ^Resources/.*\.lproj/ 14 | 15 | optional 16 | 17 | weight 18 | 1000 19 | 20 | ^Resources/.*\.lproj/locversion.plist$ 21 | 22 | omit 23 | 24 | weight 25 | 1100 26 | 27 | ^Resources/Base\.lproj/ 28 | 29 | weight 30 | 1010 31 | 32 | ^version.plist$ 33 | 34 | 35 | rules2 36 | 37 | .*\.dSYM($|/) 38 | 39 | weight 40 | 11 41 | 42 | ^(.*/)?\.DS_Store$ 43 | 44 | omit 45 | 46 | weight 47 | 2000 48 | 49 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ 50 | 51 | nested 52 | 53 | weight 54 | 10 55 | 56 | ^.* 57 | 58 | ^Info\.plist$ 59 | 60 | omit 61 | 62 | weight 63 | 20 64 | 65 | ^PkgInfo$ 66 | 67 | omit 68 | 69 | weight 70 | 20 71 | 72 | ^Resources/ 73 | 74 | weight 75 | 20 76 | 77 | ^Resources/.*\.lproj/ 78 | 79 | optional 80 | 81 | weight 82 | 1000 83 | 84 | ^Resources/.*\.lproj/locversion.plist$ 85 | 86 | omit 87 | 88 | weight 89 | 1100 90 | 91 | ^Resources/Base\.lproj/ 92 | 93 | weight 94 | 1010 95 | 96 | ^[^/]+$ 97 | 98 | nested 99 | 100 | weight 101 | 10 102 | 103 | ^embedded\.provisionprofile$ 104 | 105 | weight 106 | 20 107 | 108 | ^version\.plist$ 109 | 110 | weight 111 | 20 112 | 113 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 20G165 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleExecutable 10 | org.sparkle-project.InstallerLauncher 11 | CFBundleIdentifier 12 | org.sparkle-project.InstallerLauncher 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | org.sparkle-project.InstallerLauncher 17 | CFBundlePackageType 18 | XPC! 19 | CFBundleShortVersionString 20 | 2.0.0-beta.3 21 | CFBundleSignature 22 | ???? 23 | CFBundleSupportedPlatforms 24 | 25 | MacOSX 26 | 27 | CFBundleVersion 28 | 2003 29 | DTCompiler 30 | com.apple.compilers.llvm.clang.1_0 31 | DTPlatformBuild 32 | 12E507 33 | DTPlatformName 34 | macosx 35 | DTPlatformVersion 36 | 11.3 37 | DTSDKBuild 38 | 20E214 39 | DTSDKName 40 | macosx11.3 41 | DTXcode 42 | 1251 43 | DTXcodeBuild 44 | 12E507 45 | LSMinimumSystemVersion 46 | 10.11 47 | NSHumanReadableCopyright 48 | Copyright © 2016 Sparkle Project. All rights reserved. 49 | XPCService 50 | 51 | JoinExistingSession 52 | 53 | ServiceType 54 | Application 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Autoupdate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Autoupdate -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 20G165 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleExecutable 10 | Updater 11 | CFBundleIdentifier 12 | org.sparkle-project.Sparkle.Updater 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | Updater 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 2.0.0-beta.3 21 | CFBundleSignature 22 | ???? 23 | CFBundleSupportedPlatforms 24 | 25 | MacOSX 26 | 27 | CFBundleVersion 28 | 2003 29 | DTCompiler 30 | com.apple.compilers.llvm.clang.1_0 31 | DTPlatformBuild 32 | 12E507 33 | DTPlatformName 34 | macosx 35 | DTPlatformVersion 36 | 11.3 37 | DTSDKBuild 38 | 20E214 39 | DTSDKName 40 | macosx11.3 41 | DTXcode 42 | 1251 43 | DTXcodeBuild 44 | 12E507 45 | LSApplicationCategoryType 46 | public.app-category.utilities 47 | LSMinimumSystemVersion 48 | 10.11 49 | LSUIElement 50 | 1 51 | NSPrincipalClass 52 | NSApplication 53 | 54 | 55 | -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/MacOS/Updater: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/MacOS/Updater -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/Base.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/Base.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/SUStatus.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/SUStatus.nib -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/ca.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/ca.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/cs.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/cs.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/da.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/da.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/de.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/de.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/el.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/el.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/es.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/es.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/fa.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/fa.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/fi.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/fi.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/fr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/fr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/he.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/he.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/hr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/hr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/is.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/is.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/it.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/it.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/ja.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/ja.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/ko.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/ko.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/nb.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/nb.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/nl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/nl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/pl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/pl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/pt_BR.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/pt_BR.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/pt_PT.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/pt_PT.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/ro.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/ro.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/ru.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/ru.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/sk.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/sk.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/sl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/sl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/sv.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/sv.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/th.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/th.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/tr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/tr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/uk.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/uk.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/zh_CN.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/zh_CN.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/zh_TW.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/Resources/zh_TW.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/Updater.app/Contents/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | Resources/Base.lproj/Sparkle.strings 8 | 9 | DxW8h4RJW9TAtrlRhVabvyKU2e8= 10 | 11 | Resources/SUStatus.nib 12 | 13 | rfBJq2R1UWIjy/2RGqIE2U4xpi4= 14 | 15 | Resources/ca.lproj/Sparkle.strings 16 | 17 | hash 18 | 19 | SN1VipIiPSPYPaM2tQBVmYoesMo= 20 | 21 | optional 22 | 23 | 24 | Resources/cs.lproj/Sparkle.strings 25 | 26 | hash 27 | 28 | s/BqxfkW6ntejzvVKDGFQGNbyiE= 29 | 30 | optional 31 | 32 | 33 | Resources/da.lproj/Sparkle.strings 34 | 35 | hash 36 | 37 | 0t7SuLDMBZVsY240PAEsVfH/1qw= 38 | 39 | optional 40 | 41 | 42 | Resources/de.lproj/Sparkle.strings 43 | 44 | hash 45 | 46 | fXH7MjrA6hDT/k/8B6Vwgntt2lw= 47 | 48 | optional 49 | 50 | 51 | Resources/el.lproj/Sparkle.strings 52 | 53 | hash 54 | 55 | NbIN+TRHORCL5Gfj68VRq4KdPXo= 56 | 57 | optional 58 | 59 | 60 | Resources/es.lproj/Sparkle.strings 61 | 62 | hash 63 | 64 | QPG88BN+x/l2Qk1NLLe3wRa26mQ= 65 | 66 | optional 67 | 68 | 69 | Resources/fa.lproj/Sparkle.strings 70 | 71 | hash 72 | 73 | lND9QvVswMzjpLbhP9ZfW955lAA= 74 | 75 | optional 76 | 77 | 78 | Resources/fi.lproj/Sparkle.strings 79 | 80 | hash 81 | 82 | yd6pIoSj19HMDIUos4Td1Fch7bs= 83 | 84 | optional 85 | 86 | 87 | Resources/fr.lproj/Sparkle.strings 88 | 89 | hash 90 | 91 | xFBTJYPjf7rlbYdkRKNTsPYz5JA= 92 | 93 | optional 94 | 95 | 96 | Resources/he.lproj/Sparkle.strings 97 | 98 | hash 99 | 100 | VGB02p2yeIM3xW93qeo1iYR6KH0= 101 | 102 | optional 103 | 104 | 105 | Resources/hr.lproj/Sparkle.strings 106 | 107 | hash 108 | 109 | 7LLOVs76ioMwEDV8Gah+6sV/5No= 110 | 111 | optional 112 | 113 | 114 | Resources/is.lproj/Sparkle.strings 115 | 116 | hash 117 | 118 | 8fxzD9ZhrvIZVZB1+QSJaPzg80M= 119 | 120 | optional 121 | 122 | 123 | Resources/it.lproj/Sparkle.strings 124 | 125 | hash 126 | 127 | bk1J6vpZjWeUFhBYWuWZf8TDv1A= 128 | 129 | optional 130 | 131 | 132 | Resources/ja.lproj/Sparkle.strings 133 | 134 | hash 135 | 136 | w10YkX7gWClCJW8GUwnQwTW/Q1w= 137 | 138 | optional 139 | 140 | 141 | Resources/ko.lproj/Sparkle.strings 142 | 143 | hash 144 | 145 | FRHRQPCWEk9GdJawYTuccg+E2tA= 146 | 147 | optional 148 | 149 | 150 | Resources/nb.lproj/Sparkle.strings 151 | 152 | hash 153 | 154 | sgrDElwUxXtzdw8WaUFWyK3pG9Y= 155 | 156 | optional 157 | 158 | 159 | Resources/nl.lproj/Sparkle.strings 160 | 161 | hash 162 | 163 | PWbC08zHFLROqivY2MAklDh6gkA= 164 | 165 | optional 166 | 167 | 168 | Resources/pl.lproj/Sparkle.strings 169 | 170 | hash 171 | 172 | o7deBXE2Ct8/vQxouej5KkwTcUA= 173 | 174 | optional 175 | 176 | 177 | Resources/pt_BR.lproj/Sparkle.strings 178 | 179 | hash 180 | 181 | /adUv04OXQkCFv+Oed6qktFVQ3E= 182 | 183 | optional 184 | 185 | 186 | Resources/pt_PT.lproj/Sparkle.strings 187 | 188 | hash 189 | 190 | Mji9loJOJvuDY9hz3FhQ4H+HY5E= 191 | 192 | optional 193 | 194 | 195 | Resources/ro.lproj/Sparkle.strings 196 | 197 | hash 198 | 199 | 9U+OTz29kXKZHY/nmvbtemMsB3g= 200 | 201 | optional 202 | 203 | 204 | Resources/ru.lproj/Sparkle.strings 205 | 206 | hash 207 | 208 | x6JdY7WL2dHnGXX6PHJl5da7WKE= 209 | 210 | optional 211 | 212 | 213 | Resources/sk.lproj/Sparkle.strings 214 | 215 | hash 216 | 217 | qn/mo2EFOyw6keezS64Wo5ZGZXU= 218 | 219 | optional 220 | 221 | 222 | Resources/sl.lproj/Sparkle.strings 223 | 224 | hash 225 | 226 | kwvdisufBenuQzrVg8tYKTX+qgg= 227 | 228 | optional 229 | 230 | 231 | Resources/sv.lproj/Sparkle.strings 232 | 233 | hash 234 | 235 | 98/sk+A2Ew1fmKpuKZ3rq8eS1EM= 236 | 237 | optional 238 | 239 | 240 | Resources/th.lproj/Sparkle.strings 241 | 242 | hash 243 | 244 | HQwGW1Ebf0i+Bl4synks3x2SY2M= 245 | 246 | optional 247 | 248 | 249 | Resources/tr.lproj/Sparkle.strings 250 | 251 | hash 252 | 253 | whUQco5F2wcYdjc+cPKlk+mtx7Q= 254 | 255 | optional 256 | 257 | 258 | Resources/uk.lproj/Sparkle.strings 259 | 260 | hash 261 | 262 | JXhpqvLkX0yDWjbWgsk2wbSObKU= 263 | 264 | optional 265 | 266 | 267 | Resources/zh_CN.lproj/Sparkle.strings 268 | 269 | hash 270 | 271 | OnR96Z9tB0noODRSYssSs63+zGA= 272 | 273 | optional 274 | 275 | 276 | Resources/zh_TW.lproj/Sparkle.strings 277 | 278 | hash 279 | 280 | 1FLKoM5jZ8JGBG/nmyEIA+/aalA= 281 | 282 | optional 283 | 284 | 285 | 286 | files2 287 | 288 | Resources/Base.lproj/Sparkle.strings 289 | 290 | hash 291 | 292 | DxW8h4RJW9TAtrlRhVabvyKU2e8= 293 | 294 | hash2 295 | 296 | Ef6ZP9jL82mqiihRWtpM8iBC7p76LjE1+3mtIn+HYgY= 297 | 298 | 299 | Resources/SUStatus.nib 300 | 301 | hash 302 | 303 | rfBJq2R1UWIjy/2RGqIE2U4xpi4= 304 | 305 | hash2 306 | 307 | IOdMvY8HG20aXaSfB/Tsa1uPxfzR+WtIcNCCM3gF5y8= 308 | 309 | 310 | Resources/ca.lproj/Sparkle.strings 311 | 312 | hash 313 | 314 | SN1VipIiPSPYPaM2tQBVmYoesMo= 315 | 316 | hash2 317 | 318 | JW1GOdoPAAizHN79qFY8DiN8St1JSGLpr9n9eI4ccSI= 319 | 320 | optional 321 | 322 | 323 | Resources/cs.lproj/Sparkle.strings 324 | 325 | hash 326 | 327 | s/BqxfkW6ntejzvVKDGFQGNbyiE= 328 | 329 | hash2 330 | 331 | 0TqHpdP45A2ZEX4dbmhxiwdAGWST22JPeSpoD8uKI6g= 332 | 333 | optional 334 | 335 | 336 | Resources/da.lproj/Sparkle.strings 337 | 338 | hash 339 | 340 | 0t7SuLDMBZVsY240PAEsVfH/1qw= 341 | 342 | hash2 343 | 344 | wu0CpGqE79+TXKIQm+q7ycPTuXhOlwRr/wD5uGHJzLM= 345 | 346 | optional 347 | 348 | 349 | Resources/de.lproj/Sparkle.strings 350 | 351 | hash 352 | 353 | fXH7MjrA6hDT/k/8B6Vwgntt2lw= 354 | 355 | hash2 356 | 357 | bA5bxESyZuC/dG2VKfN+eQ7CVb2qAWrwfu94IpJ4Xi0= 358 | 359 | optional 360 | 361 | 362 | Resources/el.lproj/Sparkle.strings 363 | 364 | hash 365 | 366 | NbIN+TRHORCL5Gfj68VRq4KdPXo= 367 | 368 | hash2 369 | 370 | wt+2xyusmWAQuJ5kAQlRlvFb1wO4L7/rFdG+VmNjl+Y= 371 | 372 | optional 373 | 374 | 375 | Resources/es.lproj/Sparkle.strings 376 | 377 | hash 378 | 379 | QPG88BN+x/l2Qk1NLLe3wRa26mQ= 380 | 381 | hash2 382 | 383 | mtOoKdoTpGzeTNyzxkVGOMsE0Z3ZZOsmIKDfgA9aj8c= 384 | 385 | optional 386 | 387 | 388 | Resources/fa.lproj/Sparkle.strings 389 | 390 | hash 391 | 392 | lND9QvVswMzjpLbhP9ZfW955lAA= 393 | 394 | hash2 395 | 396 | aqSDVCfHHNCBK2BLljsy2wvdfJBF1mzOPGPRBuW4VeE= 397 | 398 | optional 399 | 400 | 401 | Resources/fi.lproj/Sparkle.strings 402 | 403 | hash 404 | 405 | yd6pIoSj19HMDIUos4Td1Fch7bs= 406 | 407 | hash2 408 | 409 | +AiiKWEdH3lesozLJBn3tfK6vi/VSI1/TnWVmIdVVsc= 410 | 411 | optional 412 | 413 | 414 | Resources/fr.lproj/Sparkle.strings 415 | 416 | hash 417 | 418 | xFBTJYPjf7rlbYdkRKNTsPYz5JA= 419 | 420 | hash2 421 | 422 | 8PKuKp2lymWYfR+BqJ15UWlxOQKUl3fEveeseHBfaTw= 423 | 424 | optional 425 | 426 | 427 | Resources/he.lproj/Sparkle.strings 428 | 429 | hash 430 | 431 | VGB02p2yeIM3xW93qeo1iYR6KH0= 432 | 433 | hash2 434 | 435 | 1/FNOTs/zXRcUoh5Z60Xpi9A6/xGIGExpgGsMKAJcTI= 436 | 437 | optional 438 | 439 | 440 | Resources/hr.lproj/Sparkle.strings 441 | 442 | hash 443 | 444 | 7LLOVs76ioMwEDV8Gah+6sV/5No= 445 | 446 | hash2 447 | 448 | TwklhrooHTXgV6Q9fbvvAB3mPIh7qDbEsNtUzo2fQuU= 449 | 450 | optional 451 | 452 | 453 | Resources/is.lproj/Sparkle.strings 454 | 455 | hash 456 | 457 | 8fxzD9ZhrvIZVZB1+QSJaPzg80M= 458 | 459 | hash2 460 | 461 | xcV1yh/zU3U3TsRUT6vGybvIQitf+ThrogN/uOWmD8k= 462 | 463 | optional 464 | 465 | 466 | Resources/it.lproj/Sparkle.strings 467 | 468 | hash 469 | 470 | bk1J6vpZjWeUFhBYWuWZf8TDv1A= 471 | 472 | hash2 473 | 474 | Y+caNW+g0mt7HP4JrBxJw+uDwN3j19UYb+q5r9ch4Ow= 475 | 476 | optional 477 | 478 | 479 | Resources/ja.lproj/Sparkle.strings 480 | 481 | hash 482 | 483 | w10YkX7gWClCJW8GUwnQwTW/Q1w= 484 | 485 | hash2 486 | 487 | 7eRGZA0jdvTJ8vuBEdTcUJTtkJC1RzUs+fJ416JIai4= 488 | 489 | optional 490 | 491 | 492 | Resources/ko.lproj/Sparkle.strings 493 | 494 | hash 495 | 496 | FRHRQPCWEk9GdJawYTuccg+E2tA= 497 | 498 | hash2 499 | 500 | +bxn0NPgkxdHLa1MHRT+JRlYmy1jpIuaenpst5RT+RA= 501 | 502 | optional 503 | 504 | 505 | Resources/nb.lproj/Sparkle.strings 506 | 507 | hash 508 | 509 | sgrDElwUxXtzdw8WaUFWyK3pG9Y= 510 | 511 | hash2 512 | 513 | FG+w+OnLI7nwnNCWiMT50LU98VWj1d08ElfX4k7Ok4w= 514 | 515 | optional 516 | 517 | 518 | Resources/nl.lproj/Sparkle.strings 519 | 520 | hash 521 | 522 | PWbC08zHFLROqivY2MAklDh6gkA= 523 | 524 | hash2 525 | 526 | xnQkqxaO8zP1xpjY3nyjOd4Fe0gJon2Dbt456ukd/Gw= 527 | 528 | optional 529 | 530 | 531 | Resources/pl.lproj/Sparkle.strings 532 | 533 | hash 534 | 535 | o7deBXE2Ct8/vQxouej5KkwTcUA= 536 | 537 | hash2 538 | 539 | pDq+41jhfESgJauedrYncFY1O5EMEU3nRyl7mmyYj+s= 540 | 541 | optional 542 | 543 | 544 | Resources/pt_BR.lproj/Sparkle.strings 545 | 546 | hash 547 | 548 | /adUv04OXQkCFv+Oed6qktFVQ3E= 549 | 550 | hash2 551 | 552 | lY5EZJwPc/Rmfhw1gotkeEKB+ANXqZUlM2G92sZwdJc= 553 | 554 | optional 555 | 556 | 557 | Resources/pt_PT.lproj/Sparkle.strings 558 | 559 | hash 560 | 561 | Mji9loJOJvuDY9hz3FhQ4H+HY5E= 562 | 563 | hash2 564 | 565 | RUq6VJjn/QyydkNbpklLwfCgRF62+uHhXen2dYLBNuQ= 566 | 567 | optional 568 | 569 | 570 | Resources/ro.lproj/Sparkle.strings 571 | 572 | hash 573 | 574 | 9U+OTz29kXKZHY/nmvbtemMsB3g= 575 | 576 | hash2 577 | 578 | NNvDsecglQ/utR6YEqxyMj5K976YRWieCIC/PZuWCtQ= 579 | 580 | optional 581 | 582 | 583 | Resources/ru.lproj/Sparkle.strings 584 | 585 | hash 586 | 587 | x6JdY7WL2dHnGXX6PHJl5da7WKE= 588 | 589 | hash2 590 | 591 | +vCWSRbECqQcsR6Nd8erQda/7x+ku/kQSUvZtTvemyQ= 592 | 593 | optional 594 | 595 | 596 | Resources/sk.lproj/Sparkle.strings 597 | 598 | hash 599 | 600 | qn/mo2EFOyw6keezS64Wo5ZGZXU= 601 | 602 | hash2 603 | 604 | e3cyzJ87ohC1ff/BzZ5O00MnwRE02U+J1KwXlSZeSSg= 605 | 606 | optional 607 | 608 | 609 | Resources/sl.lproj/Sparkle.strings 610 | 611 | hash 612 | 613 | kwvdisufBenuQzrVg8tYKTX+qgg= 614 | 615 | hash2 616 | 617 | t8QC+9TBONwKLQvV3fKV0umsnAS8ZDpqPikVksFPtWc= 618 | 619 | optional 620 | 621 | 622 | Resources/sv.lproj/Sparkle.strings 623 | 624 | hash 625 | 626 | 98/sk+A2Ew1fmKpuKZ3rq8eS1EM= 627 | 628 | hash2 629 | 630 | mJY6aeXFnSx38bF630z5lNPmPtsoYVAwadh0KC+9vfQ= 631 | 632 | optional 633 | 634 | 635 | Resources/th.lproj/Sparkle.strings 636 | 637 | hash 638 | 639 | HQwGW1Ebf0i+Bl4synks3x2SY2M= 640 | 641 | hash2 642 | 643 | nlP7repbMz6EqHo3sZWnK3tzx47WKSWnULdUHCYPgKk= 644 | 645 | optional 646 | 647 | 648 | Resources/tr.lproj/Sparkle.strings 649 | 650 | hash 651 | 652 | whUQco5F2wcYdjc+cPKlk+mtx7Q= 653 | 654 | hash2 655 | 656 | xEXUfrylPld+eFGrPyj4wTRPj7vUWOZ2f94sWydq03M= 657 | 658 | optional 659 | 660 | 661 | Resources/uk.lproj/Sparkle.strings 662 | 663 | hash 664 | 665 | JXhpqvLkX0yDWjbWgsk2wbSObKU= 666 | 667 | hash2 668 | 669 | u0572QZYh6sB0GQdMGMePalOf4zkxE7YQG7pp898SEg= 670 | 671 | optional 672 | 673 | 674 | Resources/zh_CN.lproj/Sparkle.strings 675 | 676 | hash 677 | 678 | OnR96Z9tB0noODRSYssSs63+zGA= 679 | 680 | hash2 681 | 682 | zvMbFdgVGI0ls9vIRT+sie7dj2g1UjQu7iS+pOgyBo4= 683 | 684 | optional 685 | 686 | 687 | Resources/zh_TW.lproj/Sparkle.strings 688 | 689 | hash 690 | 691 | 1FLKoM5jZ8JGBG/nmyEIA+/aalA= 692 | 693 | hash2 694 | 695 | Vlf/4QD7/3S0SFqxmTWWcSwtTLWISKUSvLjpgWb7lxQ= 696 | 697 | optional 698 | 699 | 700 | 701 | rules 702 | 703 | ^Resources/ 704 | 705 | ^Resources/.*\.lproj/ 706 | 707 | optional 708 | 709 | weight 710 | 1000 711 | 712 | ^Resources/.*\.lproj/locversion.plist$ 713 | 714 | omit 715 | 716 | weight 717 | 1100 718 | 719 | ^Resources/Base\.lproj/ 720 | 721 | weight 722 | 1010 723 | 724 | ^version.plist$ 725 | 726 | 727 | rules2 728 | 729 | .*\.dSYM($|/) 730 | 731 | weight 732 | 11 733 | 734 | ^(.*/)?\.DS_Store$ 735 | 736 | omit 737 | 738 | weight 739 | 2000 740 | 741 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ 742 | 743 | nested 744 | 745 | weight 746 | 10 747 | 748 | ^.* 749 | 750 | ^Info\.plist$ 751 | 752 | omit 753 | 754 | weight 755 | 20 756 | 757 | ^PkgInfo$ 758 | 759 | omit 760 | 761 | weight 762 | 20 763 | 764 | ^Resources/ 765 | 766 | weight 767 | 20 768 | 769 | ^Resources/.*\.lproj/ 770 | 771 | optional 772 | 773 | weight 774 | 1000 775 | 776 | ^Resources/.*\.lproj/locversion.plist$ 777 | 778 | omit 779 | 780 | weight 781 | 1100 782 | 783 | ^Resources/Base\.lproj/ 784 | 785 | weight 786 | 1010 787 | 788 | ^[^/]+$ 789 | 790 | nested 791 | 792 | weight 793 | 10 794 | 795 | ^embedded\.provisionprofile$ 796 | 797 | weight 798 | 20 799 | 800 | ^version\.plist$ 801 | 802 | weight 803 | 20 804 | 805 | 806 | 807 | 808 | -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/org.sparkle-project.InstallerLauncher: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oliverepper/Schemes/234ba5d6856138cb74676fe30baadd9c702bd54b/Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/MacOS/org.sparkle-project.InstallerLauncher -------------------------------------------------------------------------------- /Schemes/XPC Services/org.sparkle-project.InstallerLauncher.xpc/Contents/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | files2 8 | 9 | MacOS/Autoupdate 10 | 11 | cdhash 12 | 13 | Ufo64qe3TefyYB+k0a/gIs3O0sc= 14 | 15 | requirement 16 | cdhash H"c96bcdc89d38d7d65fde4eb3692bff7d8c0a8251" or cdhash H"51fa3ae2a7b74de7f2601fa4d1afe022cdced2c7" or cdhash H"f50a64d9fbe9342b998a5466c2f6d1ae419ad528" or cdhash H"a211b160f566a5fe7552d357da11731c7913854b" 17 | 18 | MacOS/Updater.app 19 | 20 | cdhash 21 | 22 | OkMk6bh8EM45LedpVgyvonSchTY= 23 | 24 | requirement 25 | cdhash H"517282ee70a643c02529bad0ef6e0284106b6b62" or cdhash H"3a4324e9b87c10ce392de769560cafa2749c8536" or cdhash H"6decb469c8aa1716f5e19c732b9f6737c90e242c" or cdhash H"f27d8dab0240f8df616bbbe3ad6ec50072346040" 26 | 27 | 28 | rules 29 | 30 | ^Resources/ 31 | 32 | ^Resources/.*\.lproj/ 33 | 34 | optional 35 | 36 | weight 37 | 1000 38 | 39 | ^Resources/.*\.lproj/locversion.plist$ 40 | 41 | omit 42 | 43 | weight 44 | 1100 45 | 46 | ^Resources/Base\.lproj/ 47 | 48 | weight 49 | 1010 50 | 51 | ^version.plist$ 52 | 53 | 54 | rules2 55 | 56 | .*\.dSYM($|/) 57 | 58 | weight 59 | 11 60 | 61 | ^(.*/)?\.DS_Store$ 62 | 63 | omit 64 | 65 | weight 66 | 2000 67 | 68 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ 69 | 70 | nested 71 | 72 | weight 73 | 10 74 | 75 | ^.* 76 | 77 | ^Info\.plist$ 78 | 79 | omit 80 | 81 | weight 82 | 20 83 | 84 | ^PkgInfo$ 85 | 86 | omit 87 | 88 | weight 89 | 20 90 | 91 | ^Resources/ 92 | 93 | weight 94 | 20 95 | 96 | ^Resources/.*\.lproj/ 97 | 98 | optional 99 | 100 | weight 101 | 1000 102 | 103 | ^Resources/.*\.lproj/locversion.plist$ 104 | 105 | omit 106 | 107 | weight 108 | 1100 109 | 110 | ^Resources/Base\.lproj/ 111 | 112 | weight 113 | 1010 114 | 115 | ^[^/]+$ 116 | 117 | nested 118 | 119 | weight 120 | 10 121 | 122 | ^embedded\.provisionprofile$ 123 | 124 | weight 125 | 20 126 | 127 | ^version\.plist$ 128 | 129 | weight 130 | 20 131 | 132 | 133 | 134 | 135 | -------------------------------------------------------------------------------- /UnregisterSchemeHandler/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | XPCService 6 | 7 | ServiceType 8 | Application 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /UnregisterSchemeHandler/UnregisterSchemeHandler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UnregisterSchemeHandler.m 3 | // UnregisterSchemeHandler 4 | // 5 | // Created by Oliver Epper on 04.10.21. 6 | // 7 | 8 | import Foundation 9 | 10 | //@_silgen_name("_LSUnregisterURL") func LSUnregisterURL(_: NSURL) -> OSStatus 11 | private let handle = dlopen(nil, RTLD_NOW) 12 | private let fnUnregister = dlsym(handle, "_LSUnregisterURL") 13 | typealias fnUnregisterType = @convention(c) (CFURL) -> OSStatus 14 | 15 | class UnregisterSchemeHandler: NSObject, UnregisterSchemeHandlerProtocol { 16 | func unregister(_ url: URL, withReply reply: @escaping (Int32) -> Void) { 17 | let LSUnregisterURL = unsafeBitCast(fnUnregister, to: fnUnregisterType.self) 18 | let result = LSUnregisterURL(url as CFURL) 19 | reply(result) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /UnregisterSchemeHandler/UnregisterSchemeHandlerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UnregisterSchemeHandler.h 3 | // UnregisterSchemeHandler 4 | // 5 | // Created by Oliver Epper on 04.10.21. 6 | // 7 | 8 | import Foundation 9 | 10 | class UnregisterSchemeHandlerDelegate: NSObject, NSXPCListenerDelegate { 11 | func listener(_ listener: NSXPCListener, shouldAcceptNewConnection newConnection: NSXPCConnection) -> Bool { 12 | newConnection.exportedInterface = NSXPCInterface(with: UnregisterSchemeHandlerProtocol.self) 13 | newConnection.exportedObject = UnregisterSchemeHandler() 14 | newConnection.resume() 15 | 16 | return true 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /UnregisterSchemeHandler/UnregisterSchemeHandlerProtocol.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UnregisterSchemeHandlerProtocol.h 3 | // UnregisterSchemeHandler 4 | // 5 | // Created by Oliver Epper on 04.10.21. 6 | // 7 | 8 | import Foundation 9 | 10 | @objc public protocol UnregisterSchemeHandlerProtocol { 11 | func unregister(_ url: URL, withReply reply: @escaping (Int32) -> Void) 12 | } 13 | -------------------------------------------------------------------------------- /UnregisterSchemeHandler/main.swift: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // UnregisterSchemeHandler 4 | // 5 | // Created by Oliver Epper on 04.10.21. 6 | // 7 | 8 | import Foundation 9 | 10 | let delegate = UnregisterSchemeHandlerDelegate() 11 | let listener = NSXPCListener.service() 12 | listener.delegate = delegate 13 | listener.resume() 14 | --------------------------------------------------------------------------------