gitextract_utyt973q/ ├── .clang-format ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── fixes-and-enhancements.md │ │ └── sparkle-doesn-t-work-in-my-app.md │ ├── pull_request_template.md │ └── workflows/ │ ├── ci.yml │ └── create-draft-release.yml ├── .gitignore ├── .gitmodules ├── .swiftlint.yml ├── Autoupdate/ │ ├── AgentConnection.h │ ├── AgentConnection.m │ ├── AppInstaller.h │ ├── AppInstaller.m │ ├── SPUDeltaArchive.h │ ├── SPUDeltaArchive.m │ ├── SPUDeltaArchiveProtocol.h │ ├── SPUDeltaCompressionMode.h │ ├── SPUInstallationInfo.h │ ├── SPUInstallationInfo.m │ ├── SPUInstallationInputData.h │ ├── SPUInstallationInputData.m │ ├── SPUMessageTypes.h │ ├── SPUMessageTypes.m │ ├── SPUSparkleDeltaArchive.h │ ├── SPUSparkleDeltaArchive.m │ ├── SPUXarDeltaArchive.h │ ├── SPUXarDeltaArchive.m │ ├── SUBinaryDeltaApply.h │ ├── SUBinaryDeltaApply.m │ ├── SUBinaryDeltaCommon.h │ ├── SUBinaryDeltaCommon.m │ ├── SUBinaryDeltaCreate.h │ ├── SUBinaryDeltaCreate.m │ ├── SUBinaryDeltaUnarchiver.h │ ├── SUBinaryDeltaUnarchiver.m │ ├── SUCodeSigningVerifier.h │ ├── SUCodeSigningVerifier.m │ ├── SUDiskImageUnarchiver.h │ ├── SUDiskImageUnarchiver.m │ ├── SUFlatPackageUnarchiver.h │ ├── SUFlatPackageUnarchiver.m │ ├── SUGuidedPackageInstaller.h │ ├── SUGuidedPackageInstaller.m │ ├── SUInstaller.h │ ├── SUInstaller.m │ ├── SUInstallerProtocol.h │ ├── SUPipedUnarchiver.h │ ├── SUPipedUnarchiver.m │ ├── SUPlainInstaller.h │ ├── SUPlainInstaller.m │ ├── SUSignatureVerifier.h │ ├── SUSignatureVerifier.m │ ├── SUStatusInfoProtocol.h │ ├── SUUnarchiver.h │ ├── SUUnarchiver.m │ ├── SUUnarchiverNotifier.h │ ├── SUUnarchiverNotifier.m │ ├── SUUnarchiverProtocol.h │ ├── StatusInfo.h │ ├── StatusInfo.m │ └── main.m ├── BinaryDelta/ │ ├── Bridging-Header.h │ └── main.swift ├── CHANGELOG ├── CODE_OF_CONDUCT.md ├── Carthage-dev.json ├── Configurations/ │ ├── CommandLineTool-Debug.xcconfig │ ├── CommandLineTool-Release.xcconfig │ ├── CommandLineTool-Shared.xcconfig │ ├── ConfigCommon.xcconfig │ ├── ConfigCommonCoverage.xcconfig │ ├── ConfigCommonDebug.xcconfig │ ├── ConfigCommonRelease.xcconfig │ ├── ConfigDownloader.xcconfig │ ├── ConfigDownloaderDebug.xcconfig │ ├── ConfigFramework.xcconfig │ ├── ConfigFrameworkDebug.xcconfig │ ├── ConfigFrameworkRelease.xcconfig │ ├── ConfigInstallerConnection.xcconfig │ ├── ConfigInstallerConnectionDebug.xcconfig │ ├── ConfigInstallerLauncher.xcconfig │ ├── ConfigInstallerLauncherDebug.xcconfig │ ├── ConfigInstallerProgress.xcconfig │ ├── ConfigInstallerStatus.xcconfig │ ├── ConfigInstallerStatusDebug.xcconfig │ ├── ConfigRelaunch.xcconfig │ ├── ConfigSparkleTool.xcconfig │ ├── ConfigSwift.xcconfig │ ├── ConfigSwiftDebug.xcconfig │ ├── ConfigSwiftRelease.xcconfig │ ├── ConfigTestApp.xcconfig │ ├── ConfigTestAppDebug.xcconfig │ ├── ConfigTestAppHelper.xcconfig │ ├── ConfigTestAppHelperDebug.xcconfig │ ├── ConfigUITest.xcconfig │ ├── ConfigUITestCoverage.xcconfig │ ├── ConfigUITestDebug.xcconfig │ ├── ConfigUITestRelease.xcconfig │ ├── ConfigUnitTest.xcconfig │ ├── ConfigUnitTestCoverage.xcconfig │ ├── ConfigUnitTestDebug.xcconfig │ ├── ConfigUnitTestRelease.xcconfig │ ├── bsdiff-Debug.xcconfig │ ├── bsdiff-Release.xcconfig │ ├── bsdiff-Shared.xcconfig │ ├── ed25519-Debug.xcconfig │ ├── ed25519-Release.xcconfig │ ├── ed25519-Shared.xcconfig │ ├── generate_latest_changes.py │ ├── link-tools.sh │ ├── make-release-package.sh │ ├── make-xcframework.sh │ ├── release-move-tag.sh │ ├── set-git-version-info.sh │ ├── strip-framework.sh │ └── update-carthage.py ├── Documentation/ │ ├── .gitignore │ ├── API_README.markdown │ ├── Design Practices.md │ ├── Installation.md │ └── Security.md ├── Downloader/ │ ├── Downloader.entitlements │ ├── Info.plist │ ├── SPUDownloader.h │ ├── SPUDownloader.m │ ├── SPUDownloaderDelegate.h │ ├── SPUDownloaderProtocol.h │ └── main.m ├── INSTALL ├── InstallerConnection/ │ ├── Info.plist │ ├── SUInstallerCommunicationProtocol.h │ ├── SUInstallerConnection.h │ ├── SUInstallerConnection.m │ ├── SUInstallerConnectionProtocol.h │ ├── SUXPCInstallerConnection.h │ ├── SUXPCInstallerConnection.m │ └── main.m ├── InstallerLauncher/ │ ├── Info.plist │ ├── SUInstallerLauncher+Private.h │ ├── SUInstallerLauncher.h │ ├── SUInstallerLauncher.m │ ├── SUInstallerLauncherProtocol.h │ ├── SUInstallerLauncherStatus.h │ └── main.m ├── InstallerStatus/ │ ├── Info.plist │ ├── SUInstallerStatus.h │ ├── SUInstallerStatus.m │ ├── SUInstallerStatusProtocol.h │ ├── SUXPCInstallerStatus.h │ ├── SUXPCInstallerStatus.m │ └── main.m ├── LICENSE ├── Makefile ├── Package.swift ├── README.markdown ├── Resources/ │ ├── AppIcon.icon/ │ │ └── icon.json │ ├── Images.xcassets/ │ │ └── AppIcon.appiconset/ │ │ └── Contents.json │ ├── ReleaseNotesColorStyle.css │ ├── SampleAppcast.xml │ └── Sparkle-Icon-2016.sketch ├── Sparkle/ │ ├── AppKitPrevention.h │ ├── Autoupdate/ │ │ ├── TerminationListener.h │ │ └── TerminationListener.m │ ├── Base.lproj/ │ │ └── Sparkle.strings │ ├── CheckLocalizations.swift │ ├── InstallerProgress/ │ │ ├── InstallerProgress-Info.plist │ │ ├── InstallerProgressAppController.h │ │ ├── InstallerProgressAppController.m │ │ ├── InstallerProgressDelegate.h │ │ ├── SPUInstallerAgentProtocol.h │ │ ├── SUInstallerAgentInitiationProtocol.h │ │ ├── ShowInstallerProgress.h │ │ ├── ShowInstallerProgress.m │ │ └── main.m │ ├── SPUAppcastItemState.h │ ├── SPUAppcastItemState.m │ ├── SPUAppcastItemStateResolver+Private.h │ ├── SPUAppcastItemStateResolver.h │ ├── SPUAppcastItemStateResolver.m │ ├── SPUAppcastSigningValidationStatus.h │ ├── SPUAutomaticUpdateDriver.h │ ├── SPUAutomaticUpdateDriver.m │ ├── SPUBasicUpdateDriver.h │ ├── SPUBasicUpdateDriver.m │ ├── SPUCoreBasedUpdateDriver.h │ ├── SPUCoreBasedUpdateDriver.m │ ├── SPUDownloadData.h │ ├── SPUDownloadData.m │ ├── SPUDownloadDataPrivate.h │ ├── SPUDownloadDriver.h │ ├── SPUDownloadDriver.m │ ├── SPUDownloadedUpdate.h │ ├── SPUDownloadedUpdate.m │ ├── SPUExtractSignedFeed.h │ ├── SPUExtractSignedFeed.m │ ├── SPUGentleUserDriverReminders.h │ ├── SPUInformationalUpdate.h │ ├── SPUInformationalUpdate.m │ ├── SPUInstallationType.h │ ├── SPUInstallerDriver.h │ ├── SPUInstallerDriver.m │ ├── SPULocalCacheDirectory.h │ ├── SPULocalCacheDirectory.m │ ├── SPUNoUpdateFoundInfo.h │ ├── SPUNoUpdateFoundInfo.m │ ├── SPUProbeInstallStatus.h │ ├── SPUProbeInstallStatus.m │ ├── SPUProbingUpdateDriver.h │ ├── SPUProbingUpdateDriver.m │ ├── SPUResumableUpdate.h │ ├── SPUScheduledUpdateDriver.h │ ├── SPUScheduledUpdateDriver.m │ ├── SPUSecureCoding.h │ ├── SPUSecureCoding.m │ ├── SPUSkippedUpdate.h │ ├── SPUSkippedUpdate.m │ ├── SPUStandardUpdaterController.h │ ├── SPUStandardUpdaterController.m │ ├── SPUStandardUserDriver+Private.h │ ├── SPUStandardUserDriver.h │ ├── SPUStandardUserDriver.m │ ├── SPUStandardUserDriverDelegate.h │ ├── SPUStandardVersionDisplay.h │ ├── SPUStandardVersionDisplay.m │ ├── SPUUIBasedUpdateDriver.h │ ├── SPUUIBasedUpdateDriver.m │ ├── SPUUpdateCheck.h │ ├── SPUUpdateDriver.h │ ├── SPUUpdatePermissionRequest.h │ ├── SPUUpdatePermissionRequest.m │ ├── SPUUpdater.h │ ├── SPUUpdater.m │ ├── SPUUpdaterCycle.h │ ├── SPUUpdaterCycle.m │ ├── SPUUpdaterDelegate.h │ ├── SPUUpdaterSettings+Debug.h │ ├── SPUUpdaterSettings.h │ ├── SPUUpdaterSettings.m │ ├── SPUUpdaterTimer.h │ ├── SPUUpdaterTimer.m │ ├── SPUUserAgent+Private.h │ ├── SPUUserAgent+Private.m │ ├── SPUUserDriver.h │ ├── SPUUserInitiatedUpdateDriver.h │ ├── SPUUserInitiatedUpdateDriver.m │ ├── SPUUserUpdateState+Private.h │ ├── SPUUserUpdateState.h │ ├── SPUUserUpdateState.m │ ├── SPUVerifierInformation.h │ ├── SPUVerifierInformation.m │ ├── SPUXPCServiceInfo.h │ ├── SPUXPCServiceInfo.m │ ├── SUAppcast+Private.h │ ├── SUAppcast.h │ ├── SUAppcast.m │ ├── SUAppcastDriver.h │ ├── SUAppcastDriver.m │ ├── SUAppcastItem+Private.h │ ├── SUAppcastItem.h │ ├── SUAppcastItem.m │ ├── SUApplicationInfo.h │ ├── SUApplicationInfo.m │ ├── SUConstants.h │ ├── SUConstants.m │ ├── SUErrors.h │ ├── SUExport.h │ ├── SUFileManager.h │ ├── SUFileManager.m │ ├── SUHost.h │ ├── SUHost.m │ ├── SUInstallerProtocol.h │ ├── SULegacyWebView.h │ ├── SULegacyWebView.m │ ├── SULocalizations.h │ ├── SULog+NSError.h │ ├── SULog+NSError.m │ ├── SULog.h │ ├── SULog.m │ ├── SUNormalization.h │ ├── SUNormalization.m │ ├── SUOperatingSystem.h │ ├── SUOperatingSystem.m │ ├── SUPhasedUpdateGroupInfo.h │ ├── SUPhasedUpdateGroupInfo.m │ ├── SUReleaseNotesCommon.h │ ├── SUReleaseNotesCommon.m │ ├── SUReleaseNotesView.h │ ├── SUSignatures.h │ ├── SUSignatures.m │ ├── SUStandardVersionComparator.h │ ├── SUStandardVersionComparator.m │ ├── SUStatus.xib │ ├── SUStatusController.h │ ├── SUStatusController.m │ ├── SUSystemProfiler.h │ ├── SUSystemProfiler.m │ ├── SUTextViewReleaseNotesView.h │ ├── SUTextViewReleaseNotesView.m │ ├── SUTouchBarButtonGroup.h │ ├── SUTouchBarButtonGroup.m │ ├── SUUpdateAlert.h │ ├── SUUpdateAlert.m │ ├── SUUpdateAlert.xib │ ├── SUUpdatePermissionPrompt.h │ ├── SUUpdatePermissionPrompt.m │ ├── SUUpdatePermissionPrompt.xib │ ├── SUUpdatePermissionResponse.h │ ├── SUUpdatePermissionResponse.m │ ├── SUUpdateValidator.h │ ├── SUUpdateValidator.m │ ├── SUUpdater.h │ ├── SUUpdater.m │ ├── SUUpdaterDelegate.h │ ├── SUVersionComparisonProtocol.h │ ├── SUVersionDisplayProtocol.h │ ├── SUWKWebView.h │ ├── SUWKWebView.m │ ├── Sparkle-Info.plist │ ├── Sparkle.h │ ├── Sparkle.private.modulemap │ ├── ar.lproj/ │ │ └── Sparkle.strings │ ├── 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 │ ├── hu.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 │ ├── nn.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 │ ├── vi.lproj/ │ │ └── Sparkle.strings │ ├── zh_CN.lproj/ │ │ └── Sparkle.strings │ ├── zh_HK.lproj/ │ │ └── Sparkle.strings │ └── zh_TW.lproj/ │ └── Sparkle.strings ├── Sparkle.podspec ├── Sparkle.xcodeproj/ │ ├── project.pbxproj │ ├── project.xcworkspace/ │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata/ │ │ ├── IDEWorkspaceChecks.plist │ │ └── swiftpm/ │ │ └── Package.resolved │ └── xcshareddata/ │ └── xcschemes/ │ ├── BinaryDelta.xcscheme │ ├── Distribution.xcscheme │ ├── Sparkle Test App.xcscheme │ ├── Sparkle.xcscheme │ ├── UITests.xcscheme │ ├── generate_appcast.xcscheme │ ├── generate_keys.xcscheme │ ├── sign_update.xcscheme │ └── sparkle-cli.xcscheme ├── TestAppHelper/ │ ├── Info.plist │ ├── TestAppHelper.h │ ├── TestAppHelper.m │ ├── TestAppHelperProtocol.h │ └── main.m ├── TestApplication/ │ ├── AppIcon.icon/ │ │ └── icon.json │ ├── Base.lproj/ │ │ ├── InfoPlist.strings │ │ └── MainMenu.xib │ ├── SUAdHocCodeSigning.h │ ├── SUAdHocCodeSigning.m │ ├── SUInstallUpdateViewController.h │ ├── SUInstallUpdateViewController.m │ ├── SUInstallUpdateViewController.xib │ ├── SUPopUpTitlebarUserDriver.h │ ├── SUPopUpTitlebarUserDriver.m │ ├── SUTestApplicationDelegate.h │ ├── SUTestApplicationDelegate.m │ ├── SUTestWebServer.h │ ├── SUTestWebServer.m │ ├── SUUpdateSettingsWindowController.h │ ├── SUUpdateSettingsWindowController.m │ ├── SUUpdateSettingsWindowController.xib │ ├── Sparkle-Test-App.entitlements │ ├── TestApplication-Info.plist │ ├── ar.lproj/ │ │ └── MainMenu.strings │ ├── ca.lproj/ │ │ └── MainMenu.strings │ ├── cs.lproj/ │ │ └── MainMenu.strings │ ├── da.lproj/ │ │ └── MainMenu.strings │ ├── de.lproj/ │ │ └── MainMenu.strings │ ├── el.lproj/ │ │ └── MainMenu.strings │ ├── en.lproj/ │ │ └── MainMenu.strings │ ├── es.lproj/ │ │ └── MainMenu.strings │ ├── fa.lproj/ │ │ └── MainMenu.strings │ ├── fi.lproj/ │ │ └── MainMenu.strings │ ├── fr.lproj/ │ │ └── MainMenu.strings │ ├── he.lproj/ │ │ └── MainMenu.strings │ ├── hr.lproj/ │ │ └── MainMenu.strings │ ├── hu.lproj/ │ │ └── MainMenu.strings │ ├── is.lproj/ │ │ └── MainMenu.strings │ ├── it.lproj/ │ │ └── MainMenu.strings │ ├── ja.lproj/ │ │ └── MainMenu.strings │ ├── ko.lproj/ │ │ └── MainMenu.strings │ ├── main.m │ ├── nb.lproj/ │ │ └── MainMenu.strings │ ├── nl.lproj/ │ │ └── MainMenu.strings │ ├── nn.lproj/ │ │ └── MainMenu.strings │ ├── pl.lproj/ │ │ └── MainMenu.strings │ ├── pt-BR.lproj/ │ │ └── MainMenu.strings │ ├── pt-PT.lproj/ │ │ └── MainMenu.strings │ ├── ro.lproj/ │ │ └── MainMenu.strings │ ├── ru.lproj/ │ │ └── MainMenu.strings │ ├── sk.lproj/ │ │ └── MainMenu.strings │ ├── sl.lproj/ │ │ └── MainMenu.strings │ ├── sparkletestcast.xml │ ├── sv.lproj/ │ │ └── MainMenu.strings │ ├── th.lproj/ │ │ └── MainMenu.strings │ ├── tr.lproj/ │ │ └── MainMenu.strings │ ├── uk.lproj/ │ │ └── MainMenu.strings │ ├── vi.lproj/ │ │ └── MainMenu.strings │ ├── zh_CN.lproj/ │ │ └── MainMenu.strings │ ├── zh_HK.lproj/ │ │ └── MainMenu.strings │ └── zh_TW.lproj/ │ └── MainMenu.strings ├── Tests/ │ ├── .swiftlint.yml │ ├── Resources/ │ │ ├── DevSignedAppVersion2.dmg │ │ ├── SUUpdateValidatorTest/ │ │ │ ├── Both.bundle/ │ │ │ │ └── Contents/ │ │ │ │ ├── Info.plist │ │ │ │ └── Resources/ │ │ │ │ └── test-pubkey.pem │ │ │ ├── CodeSignedBoth.bundle/ │ │ │ │ └── Contents/ │ │ │ │ ├── Info.plist │ │ │ │ ├── Resources/ │ │ │ │ │ └── test-pubkey.pem │ │ │ │ └── _CodeSignature/ │ │ │ │ ├── CodeDirectory │ │ │ │ ├── CodeRequirements │ │ │ │ ├── CodeRequirements-1 │ │ │ │ ├── CodeResources │ │ │ │ └── CodeSignature │ │ │ ├── CodeSignedBothNew.bundle/ │ │ │ │ └── Contents/ │ │ │ │ ├── Info.plist │ │ │ │ ├── Resources/ │ │ │ │ │ └── test-pubkey.pem │ │ │ │ └── _CodeSignature/ │ │ │ │ ├── CodeDirectory │ │ │ │ ├── CodeRequirements │ │ │ │ ├── CodeRequirements-1 │ │ │ │ ├── CodeResources │ │ │ │ └── CodeSignature │ │ │ ├── CodeSignedInvalid.bundle/ │ │ │ │ └── Contents/ │ │ │ │ ├── Info.plist │ │ │ │ ├── Resources/ │ │ │ │ │ └── test-pubkey.pem │ │ │ │ └── _CodeSignature/ │ │ │ │ ├── CodeDirectory │ │ │ │ ├── CodeRequirements │ │ │ │ ├── CodeRequirements-1 │ │ │ │ ├── CodeResources │ │ │ │ └── CodeSignature │ │ │ ├── CodeSignedInvalidOnly.bundle/ │ │ │ │ └── Contents/ │ │ │ │ ├── Info.plist │ │ │ │ └── _CodeSignature/ │ │ │ │ ├── CodeDirectory │ │ │ │ ├── CodeRequirements │ │ │ │ ├── CodeRequirements-1 │ │ │ │ ├── CodeResources │ │ │ │ └── CodeSignature │ │ │ ├── CodeSignedOldED.bundle/ │ │ │ │ └── Contents/ │ │ │ │ ├── Info.plist │ │ │ │ └── _CodeSignature/ │ │ │ │ ├── CodeDirectory │ │ │ │ ├── CodeRequirements │ │ │ │ ├── CodeRequirements-1 │ │ │ │ ├── CodeResources │ │ │ │ └── CodeSignature │ │ │ ├── CodeSignedOnly.bundle/ │ │ │ │ └── Contents/ │ │ │ │ ├── Info.plist │ │ │ │ └── _CodeSignature/ │ │ │ │ ├── CodeDirectory │ │ │ │ ├── CodeRequirements │ │ │ │ ├── CodeRequirements-1 │ │ │ │ ├── CodeResources │ │ │ │ └── CodeSignature │ │ │ ├── CodeSignedOnlyNew.bundle/ │ │ │ │ └── Contents/ │ │ │ │ ├── Info.plist │ │ │ │ └── _CodeSignature/ │ │ │ │ ├── CodeDirectory │ │ │ │ ├── CodeRequirements │ │ │ │ ├── CodeRequirements-1 │ │ │ │ ├── CodeResources │ │ │ │ └── CodeSignature │ │ │ ├── DSAOnly.bundle/ │ │ │ │ └── Contents/ │ │ │ │ ├── Info.plist │ │ │ │ └── Resources/ │ │ │ │ └── test-pubkey.pem │ │ │ ├── EDOnly.bundle/ │ │ │ │ └── Contents/ │ │ │ │ └── Info.plist │ │ │ ├── None.bundle/ │ │ │ │ └── Contents/ │ │ │ │ └── Info.plist │ │ │ └── resign-all.sh │ │ ├── SparkleTestCodeSignApp.aar │ │ ├── SparkleTestCodeSignApp.dmg │ │ ├── SparkleTestCodeSignApp.enc.aar │ │ ├── SparkleTestCodeSignApp.enc.dmg │ │ ├── SparkleTestCodeSignApp.enc.nolicense.dmg │ │ ├── SparkleTestCodeSignApp.tar.bz2 │ │ ├── SparkleTestCodeSignApp.tar.xz │ │ ├── SparkleTestCodeSign_apfs.dmg │ │ ├── SparkleTestCodeSign_apfs_lzma_aux_files_adhoc.dmg │ │ ├── SparkleTestCodeSign_pkg.dmg │ │ ├── signed-test-file.txt │ │ ├── test-dangerous-link.xml │ │ ├── test-links.xml │ │ ├── test-pubkey.pem │ │ ├── test-relative-urls.xml │ │ ├── test.pkg │ │ ├── testappcast.xml │ │ ├── testappcast_arm64HardwareRequirement.xml │ │ ├── testappcast_channels.xml │ │ ├── testappcast_info_updates.xml │ │ ├── testappcast_minimumAutoupdateVersion.xml │ │ ├── testappcast_minimumAutoupdateVersionSkipping.xml │ │ ├── testappcast_minimumAutoupdateVersionSkipping2.xml │ │ ├── testappcast_minimumUpdateVersion.xml │ │ ├── testappcast_phasedRollout.xml │ │ ├── testlocalizedreleasenotesappcast.xml │ │ ├── testnamespaces.xml │ │ └── testreleasenotes.html │ ├── SUAppcastTest.swift │ ├── SUBinaryDeltaTest.m │ ├── SUCodeSigningVerifierTest.m │ ├── SUFeedSignatureVerifierTest.swift │ ├── SUFileManagerTest.swift │ ├── SUInstallerTest.m │ ├── SUSignatureVerifierTest.m │ ├── SUSpotlightImporterTest.swift │ ├── SUUnarchiverTest.swift │ ├── SUUpdateValidatorTest.swift │ ├── SUUpdaterTest.m │ ├── SUVersionComparisonTest.m │ ├── Sparkle Unit Tests-Bridging-Header.h │ └── SparkleTests-Info.plist ├── UITests/ │ ├── .swiftlint.yml │ ├── SUTestApplicationTest.swift │ └── UITests-Info.plist ├── Vendor/ │ ├── bsdiff/ │ │ ├── bscommon.c │ │ ├── bscommon.h │ │ ├── bsdiff.c │ │ ├── bspatch.c │ │ ├── bspatch.h │ │ ├── sais.c │ │ └── sais.h │ └── ed25519-sparkle/ │ ├── alterations.txt │ ├── license.txt │ ├── readme.md │ └── src/ │ ├── add_scalar.c │ ├── ed25519.h │ ├── fe.c │ ├── fe.h │ ├── fixedint.h │ ├── ge.c │ ├── ge.h │ ├── key_exchange.c │ ├── keypair.c │ ├── precomp_data.h │ ├── sc.c │ ├── sc.h │ ├── seed.c │ ├── sha512.c │ ├── sha512.h │ ├── sign.c │ └── verify.c ├── bin/ │ └── old_dsa_scripts/ │ └── sign_update ├── common_cli/ │ ├── Secret.swift │ └── Signing.swift ├── generate_appcast/ │ ├── Appcast.swift │ ├── ArchiveItem.swift │ ├── Bridging-Header.h │ ├── FeedXML.swift │ ├── URL+Hashing.swift │ ├── Unarchive.swift │ └── main.swift ├── generate_keys/ │ ├── Bridging-Header.h │ └── main.swift ├── sign_update/ │ ├── Bridging-Header.h │ └── main.swift └── sparkle-cli/ ├── Info.plist ├── SPUCommandLineDriver.h ├── SPUCommandLineDriver.m ├── SPUCommandLineUserDriver.h ├── SPUCommandLineUserDriver.m └── main.m