From 38abe2f0721a7bf66ca168cadd7ec8a5aceff304 Mon Sep 17 00:00:00 2001 From: Sparkle-Bot Date: Fri, 18 Feb 2022 19:43:34 +0000 Subject: [PATCH] Update API documentation --- .../Classes/SPUDownloadData.html | 4 +- .../Classes/SPUStandardUpdaterController.html | 4 +- .../Classes/SPUStandardUserDriver.html | 4 +- .../Classes/SPUUpdatePermissionRequest.html | 4 +- .../api-reference/Classes/SPUUpdater.html | 7 +- .../Classes/SPUUpdaterSettings.html | 4 +- .../Classes/SPUUserUpdateState.html | 4 +- .../api-reference/Classes/SUAppcast.html | 4 +- .../api-reference/Classes/SUAppcastItem.html | 48 +++++- .../Classes/SUStandardVersionComparator.html | 4 +- .../Classes/SUUpdatePermissionResponse.html | 4 +- .../api-reference/Classes/SUUpdater.html | 4 +- documentation/api-reference/Constants.html | 4 +- documentation/api-reference/Enums.html | 4 +- .../Enums/SPUNoUpdateFoundReason.html | 4 +- .../api-reference/Enums/SPUUpdateCheck.html | 4 +- .../Enums/SPUUserUpdateChoice.html | 4 +- .../Enums/SPUUserUpdateStage.html | 4 +- .../api-reference/Enums/SUError.html | 4 +- documentation/api-reference/Protocols.html | 4 +- .../SPUStandardUserDriverDelegate.html | 4 +- .../Protocols/SPUUpdaterDelegate.html | 4 +- .../Protocols/SPUUserDriver.html | 163 ++++++++++++------ .../Protocols/SUUpdaterDelegate.html | 4 +- .../Protocols/SUVersionComparison.html | 4 +- .../Protocols/SUVersionDisplay.html | 4 +- documentation/api-reference/classes.html | 4 +- .../Documents/Classes/SPUDownloadData.html | 4 +- .../Classes/SPUStandardUpdaterController.html | 4 +- .../Classes/SPUStandardUserDriver.html | 4 +- .../Classes/SPUUpdatePermissionRequest.html | 4 +- .../Documents/Classes/SPUUpdater.html | 7 +- .../Documents/Classes/SPUUpdaterSettings.html | 4 +- .../Documents/Classes/SPUUserUpdateState.html | 4 +- .../Documents/Classes/SUAppcast.html | 4 +- .../Documents/Classes/SUAppcastItem.html | 48 +++++- .../Classes/SUStandardVersionComparator.html | 4 +- .../Classes/SUUpdatePermissionResponse.html | 4 +- .../Documents/Classes/SUUpdater.html | 4 +- .../Resources/Documents/Constants.html | 4 +- .../Contents/Resources/Documents/Enums.html | 4 +- .../Enums/SPUNoUpdateFoundReason.html | 4 +- .../Documents/Enums/SPUUpdateCheck.html | 4 +- .../Documents/Enums/SPUUserUpdateChoice.html | 4 +- .../Documents/Enums/SPUUserUpdateStage.html | 4 +- .../Resources/Documents/Enums/SUError.html | 4 +- .../Resources/Documents/Protocols.html | 4 +- .../SPUStandardUserDriverDelegate.html | 4 +- .../Protocols/SPUUpdaterDelegate.html | 4 +- .../Documents/Protocols/SPUUserDriver.html | 163 ++++++++++++------ .../Protocols/SUUpdaterDelegate.html | 4 +- .../Protocols/SUVersionComparison.html | 4 +- .../Documents/Protocols/SUVersionDisplay.html | 4 +- .../Contents/Resources/Documents/classes.html | 4 +- .../Contents/Resources/Documents/index.html | 4 +- .../Contents/Resources/Documents/search.json | 2 +- .../Contents/Resources/docSet.dsidx | Bin 90112 -> 90112 bytes .../api-reference/docsets/Sparkle.tgz | Bin 124252 -> 124737 bytes documentation/api-reference/index.html | 4 +- documentation/api-reference/search.json | 2 +- documentation/api-reference/undocumented.json | 28 ++- 61 files changed, 441 insertions(+), 227 deletions(-) diff --git a/documentation/api-reference/Classes/SPUDownloadData.html b/documentation/api-reference/Classes/SPUDownloadData.html index c793331..a00a7fd 100644 --- a/documentation/api-reference/Classes/SPUDownloadData.html +++ b/documentation/api-reference/Classes/SPUDownloadData.html @@ -16,7 +16,7 @@

- Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

@@ -354,7 +354,7 @@
diff --git a/documentation/api-reference/Classes/SPUStandardUpdaterController.html b/documentation/api-reference/Classes/SPUStandardUpdaterController.html index 98049f1..2213b2e 100644 --- a/documentation/api-reference/Classes/SPUStandardUpdaterController.html +++ b/documentation/api-reference/Classes/SPUStandardUpdaterController.html @@ -16,7 +16,7 @@

- Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

@@ -546,7 +546,7 @@ this controller also handles enabling/disabling the menu item by checking
diff --git a/documentation/api-reference/Classes/SPUStandardUserDriver.html b/documentation/api-reference/Classes/SPUStandardUserDriver.html index a1faa2a..1948e54 100644 --- a/documentation/api-reference/Classes/SPUStandardUserDriver.html +++ b/documentation/api-reference/Classes/SPUStandardUserDriver.html @@ -16,7 +16,7 @@

- Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

@@ -315,7 +315,7 @@
diff --git a/documentation/api-reference/Classes/SPUUpdatePermissionRequest.html b/documentation/api-reference/Classes/SPUUpdatePermissionRequest.html index c1b1057..ffae0df 100644 --- a/documentation/api-reference/Classes/SPUUpdatePermissionRequest.html +++ b/documentation/api-reference/Classes/SPUUpdatePermissionRequest.html @@ -16,7 +16,7 @@

- Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

@@ -308,7 +308,7 @@
diff --git a/documentation/api-reference/Classes/SPUUpdater.html b/documentation/api-reference/Classes/SPUUpdater.html index c80fc10..de1e69f 100644 --- a/documentation/api-reference/Classes/SPUUpdater.html +++ b/documentation/api-reference/Classes/SPUUpdater.html @@ -16,7 +16,7 @@

- Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

@@ -508,7 +508,8 @@ may be activated with the update resumed at a later point (automatically or manu and sets this property based on their response. If SUEnableAutomaticChecks is set in the Info.plist, this permission request is not performed however.

-

Setting this property will persist in the host bundle’s user defaults.

+

Setting this property will persist in the host bundle’s user defaults. +Only set this property if you need dynamic behavior (e.g. user preferences).

The update schedule cycle will be reset in a short delay after the property’s new value is set. This is to allow reverting this property without kicking off a schedule change immediately

@@ -1061,7 +1062,7 @@ The update cycle is also started automatically after the updater is started. In
diff --git a/documentation/api-reference/Classes/SPUUpdaterSettings.html b/documentation/api-reference/Classes/SPUUpdaterSettings.html index 6bcb90d..08ec18c 100644 --- a/documentation/api-reference/Classes/SPUUpdaterSettings.html +++ b/documentation/api-reference/Classes/SPUUpdaterSettings.html @@ -16,7 +16,7 @@

- Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

@@ -422,7 +422,7 @@ If the setting is not found in there, then the host’s Info.plist file is l
diff --git a/documentation/api-reference/Classes/SPUUserUpdateState.html b/documentation/api-reference/Classes/SPUUserUpdateState.html index b200c13..393686b 100644 --- a/documentation/api-reference/Classes/SPUUserUpdateState.html +++ b/documentation/api-reference/Classes/SPUUserUpdateState.html @@ -16,7 +16,7 @@

- Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

@@ -321,7 +321,7 @@
diff --git a/documentation/api-reference/Classes/SUAppcast.html b/documentation/api-reference/Classes/SUAppcast.html index 2261b82..b71b5d4 100644 --- a/documentation/api-reference/Classes/SUAppcast.html +++ b/documentation/api-reference/Classes/SUAppcast.html @@ -16,7 +16,7 @@

- Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

@@ -289,7 +289,7 @@
diff --git a/documentation/api-reference/Classes/SUAppcastItem.html b/documentation/api-reference/Classes/SUAppcastItem.html index 55c94a0..beafe25 100644 --- a/documentation/api-reference/Classes/SUAppcastItem.html +++ b/documentation/api-reference/Classes/SUAppcastItem.html @@ -16,7 +16,7 @@

- Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

@@ -813,10 +813,12 @@ Old applications must be using Sparkle 2 or later to interpret the channel eleme

Otherwise if the requirement is not met, the user is always prompted to install the update. In this case, the update is assumed to be a majorUpgrade.

-

If the update is a majorUpgrade and the update is skipped by the user, other future update alerts with the same minimumAutoupdateVersion will also be skipped.

+

If the update is a majorUpgrade and the update is skipped by the user, other future update alerts with the same minimumAutoupdateVersion will also be skipped automatically unless an update specifies ignoreSkippedUpgradesBelowVersion.

This version string corresponds to the application’s CFBundleVersion

+

This is extracted from the <sparkle:minimumAutoupdateVersion> element.

+

Declaration

@@ -868,6 +870,46 @@ Old applications must be using Sparkle 2 or later to interpret the channel eleme
+
  • + +
    +
    +
    +
    +
    +

    Previously skipped upgrades by the user will be ignored if they skipped an update whose version precedes this version.

    + +

    This can only be applied if the update is a majorUpgrade.

    + +

    This version string corresponds to the application’s CFBundleVersion

    + +

    This is extracted from the <sparkle:ignoreSkippedUpgradesBelowVersion> element.

    + +

    Old applications must be using Sparkle 2.1 or later, otherwise this property will be ignored.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly, nullable) NSString *ignoreSkippedUpgradesBelowVersion;
    + +
    +
    +

    Swift

    +
    var ignoreSkippedUpgradesBelowVersion: String? { get }
    + +
    +
    +
    +
    +
  • @@ -1434,7 +1476,7 @@ The value is an update item that will have
    diff --git a/documentation/api-reference/Classes/SUStandardVersionComparator.html b/documentation/api-reference/Classes/SUStandardVersionComparator.html index 5604957..289f645 100644 --- a/documentation/api-reference/Classes/SUStandardVersionComparator.html +++ b/documentation/api-reference/Classes/SUStandardVersionComparator.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -364,7 +364,7 @@ These versions that are compared correspond to the CFBundleVersion
    diff --git a/documentation/api-reference/Classes/SUUpdatePermissionResponse.html b/documentation/api-reference/Classes/SUUpdatePermissionResponse.html index a65075c..c2e77c0 100644 --- a/documentation/api-reference/Classes/SUUpdatePermissionResponse.html +++ b/documentation/api-reference/Classes/SUUpdatePermissionResponse.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -383,7 +383,7 @@
    diff --git a/documentation/api-reference/Classes/SUUpdater.html b/documentation/api-reference/Classes/SUUpdater.html index 8832a2b..01c0e5f 100644 --- a/documentation/api-reference/Classes/SUUpdater.html +++ b/documentation/api-reference/Classes/SUUpdater.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -901,7 +901,7 @@
    diff --git a/documentation/api-reference/Constants.html b/documentation/api-reference/Constants.html index 3fce564..98baf1e 100644 --- a/documentation/api-reference/Constants.html +++ b/documentation/api-reference/Constants.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -884,7 +884,7 @@
    diff --git a/documentation/api-reference/Enums.html b/documentation/api-reference/Enums.html index c86966e..e4e3689 100644 --- a/documentation/api-reference/Enums.html +++ b/documentation/api-reference/Enums.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -417,7 +417,7 @@
    diff --git a/documentation/api-reference/Enums/SPUNoUpdateFoundReason.html b/documentation/api-reference/Enums/SPUNoUpdateFoundReason.html index f5b2152..366b0dd 100644 --- a/documentation/api-reference/Enums/SPUNoUpdateFoundReason.html +++ b/documentation/api-reference/Enums/SPUNoUpdateFoundReason.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -384,7 +384,7 @@
    diff --git a/documentation/api-reference/Enums/SPUUpdateCheck.html b/documentation/api-reference/Enums/SPUUpdateCheck.html index 2e77386..fccf8c4 100644 --- a/documentation/api-reference/Enums/SPUUpdateCheck.html +++ b/documentation/api-reference/Enums/SPUUpdateCheck.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -302,7 +302,7 @@
    diff --git a/documentation/api-reference/Enums/SPUUserUpdateChoice.html b/documentation/api-reference/Enums/SPUUserUpdateChoice.html index e430113..040bacc 100644 --- a/documentation/api-reference/Enums/SPUUserUpdateChoice.html +++ b/documentation/api-reference/Enums/SPUUserUpdateChoice.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -320,7 +320,7 @@
    diff --git a/documentation/api-reference/Enums/SPUUserUpdateStage.html b/documentation/api-reference/Enums/SPUUserUpdateStage.html index 6f4745f..890ef9f 100644 --- a/documentation/api-reference/Enums/SPUUserUpdateStage.html +++ b/documentation/api-reference/Enums/SPUUserUpdateStage.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -320,7 +320,7 @@
    diff --git a/documentation/api-reference/Enums/SUError.html b/documentation/api-reference/Enums/SUError.html index f372d37..6d74947 100644 --- a/documentation/api-reference/Enums/SUError.html +++ b/documentation/api-reference/Enums/SUError.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -1259,7 +1259,7 @@
    diff --git a/documentation/api-reference/Protocols.html b/documentation/api-reference/Protocols.html index c5dfb39..81dabfd 100644 --- a/documentation/api-reference/Protocols.html +++ b/documentation/api-reference/Protocols.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -422,7 +422,7 @@ an object that implements this protocol what actions to take and show to the use
    diff --git a/documentation/api-reference/Protocols/SPUStandardUserDriverDelegate.html b/documentation/api-reference/Protocols/SPUStandardUserDriverDelegate.html index f0aafee..b8aff35 100644 --- a/documentation/api-reference/Protocols/SPUStandardUserDriverDelegate.html +++ b/documentation/api-reference/Protocols/SPUStandardUserDriverDelegate.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -381,7 +381,7 @@ A delegate may want to implement this method if they want to show in-app or offl
    diff --git a/documentation/api-reference/Protocols/SPUUpdaterDelegate.html b/documentation/api-reference/Protocols/SPUUpdaterDelegate.html index ad3aa97..1d0d512 100644 --- a/documentation/api-reference/Protocols/SPUUpdaterDelegate.html +++ b/documentation/api-reference/Protocols/SPUUpdaterDelegate.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -2376,7 +2376,7 @@ even if you provide a custom comparator here.

    diff --git a/documentation/api-reference/Protocols/SPUUserDriver.html b/documentation/api-reference/Protocols/SPUUserDriver.html index 94cfa26..64164e7 100644 --- a/documentation/api-reference/Protocols/SPUUserDriver.html +++ b/documentation/api-reference/Protocols/SPUUserDriver.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -231,7 +231,7 @@ an object that implements this protocol what actions to take and show to the use If the state.stage is SPUUserUpdateStateInstalling, the installing update is also preserved after dismissing. In this state however, the update will also still be installed after the application is terminated.

    A reply of SPUUserUpdateChoiceSkip skips this particular version and won’t notify the user again, unless they initiate an update check themselves. - If appcastItem.majorUpgrade is YES, the major update and any future minor updates to that major release are skipped. + If appcastItem.majorUpgrade is YES, the major update and any future minor updates to that major release are skipped, unless a future minor update specifies a <sparkle:ignoreSkippedUpgradesBelowVersion> requirement. If the state.stage is SPUUpdateStateInstalling, the installation is also canceled when the update is skipped.

    @@ -808,42 +808,6 @@ Additionally, this method may be called more than once for the same download in
  • -
  • -
    - - - - -showInstallingUpdate - -
    -
    -
    -
    -
    -
    -

    Show the user that the update is installing

    - -

    Let the user know that the update is currently installing. Sparkle uses this to show an indeterminate progress bar.

    - -

    Before this point, -showExtractionReceivedProgress: may be called.

    - -
    -
    -

    Declaration

    -
    -

    Objective-C

    -
    - (void)showInstallingUpdate;
    - -
    -
    -

    Swift

    -
    func showInstallingUpdate()
    - -
    -
    -
    -
    -
  • @@ -868,7 +832,7 @@ Additionally, this method may be called more than once for the same download in

    A reply of SPUUserUpdateChoiceSkip cancels the current update that has begun installing and dismisses the update. In this circumstance, the update is canceled but this update version is not skipped in the future.

    -

    Before this point, -showInstallingUpdate will be called.

    +

    Before this point, -showExtractionReceivedProgress: or -showUpdateFoundWithAppcastItem:state:reply: may be called.

    @@ -910,9 +874,9 @@ Additionally, this method may be called more than once for the same download in
  • @@ -920,30 +884,49 @@ Additionally, this method may be called more than once for the same download in
    -

    Show or dismiss progress while a termination signal is being sent to the application from Sparkle’s installer

    +

    Show the user that the update is installing

    -

    Terminating and relaunching the application (if requested to be relaunched) may happen quickly, - or it may take some time to perform the final installation, or the termination signal can be canceled or delayed by the application or user.

    +

    Let the user know that the update is currently installing.

    -

    It is up to the implementor whether or not to decide to continue showing installation progress - or dismissing UI that won’t remain obscuring other parts of the user interface.

    - -

    This will not be invoked if the application that is being updated is already terminated.

    +

    Before this point, -showReadyToInstallAndRelaunch: or -showUpdateFoundWithAppcastItem:state:reply: will be called.

    Declaration

    Objective-C

    -
    - (void)showSendingTerminationSignal;
    +
    - (void)showInstallingUpdateWithApplicationTerminated:
    +    (BOOL)applicationTerminated;

    Swift

    -
    func showSendingTerminationSignal()
    +
    func showInstallingUpdate(withApplicationTerminated applicationTerminated: Bool)
    +
    +

    Parameters

    + + + + + + + +
    + + applicationTerminated + + +
    +

    Indicates if the application has been terminated already. +If the application hasn’t been terminated, a quit event is sent to the running application before installing the update. +If the application or user delays or cancels termination, there may be an indefinite period of time before the application fully quits. +It is up to the implementor whether or not to decide to continue showing installation progress in this case.

    +
    +
    +
  • @@ -968,7 +951,7 @@ Additionally, this method may be called more than once for the same download in the updater’s lifetime is tied to the application it is updating. This implementation must not try to reference the old bundle prior to the installation, which will no longer be around.

    -

    Before this point, -showSendingTerminationSignal or -showReadyToInstallAndRelaunch: may be called.

    +

    Before this point, -showInstallingUpdateWithApplicationTerminated: will be called.

    @@ -1202,6 +1185,80 @@ Additionally, this method may be called more than once for the same download in
    +
  • +
    + + + + -showInstallingUpdate + +
    +
    +
    +
    +
    +
    +

    Deprecated

    +

    Implement -showInstallingUpdateWithApplicationTerminated: instead.

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)showInstallingUpdate __deprecated_msg("Implement -showInstallingUpdateWithApplicationTerminated: instead.");
    + +
    +
    +

    Swift

    +
    optional func showInstallingUpdate()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Deprecated

    +

    Implement -showInstallingUpdateWithApplicationTerminated: instead.

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)showSendingTerminationSignal __deprecated_msg("Implement -showInstallingUpdateWithApplicationTerminated: instead.");
    + +
    +
    +

    Swift

    +
    optional func showSendingTerminationSignal()
    + +
    +
    +
    +
    +
  • @@ -1368,7 +1425,7 @@ Additionally, this method may be called more than once for the same download in diff --git a/documentation/api-reference/Protocols/SUUpdaterDelegate.html b/documentation/api-reference/Protocols/SUUpdaterDelegate.html index 38c0cb2..91c40bf 100644 --- a/documentation/api-reference/Protocols/SUUpdaterDelegate.html +++ b/documentation/api-reference/Protocols/SUUpdaterDelegate.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -1210,7 +1210,7 @@
    diff --git a/documentation/api-reference/Protocols/SUVersionComparison.html b/documentation/api-reference/Protocols/SUVersionComparison.html index 9cd51d9..cfb4489 100644 --- a/documentation/api-reference/Protocols/SUVersionComparison.html +++ b/documentation/api-reference/Protocols/SUVersionComparison.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -260,7 +260,7 @@ and NSOrderedSame if they are equivalent.

    diff --git a/documentation/api-reference/Protocols/SUVersionDisplay.html b/documentation/api-reference/Protocols/SUVersionDisplay.html index 032159d..4e7dbfb 100644 --- a/documentation/api-reference/Protocols/SUVersionDisplay.html +++ b/documentation/api-reference/Protocols/SUVersionDisplay.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -260,7 +260,7 @@ can be displayed while also leaving out unnecessary/confusing parts.

    diff --git a/documentation/api-reference/classes.html b/documentation/api-reference/classes.html index 15544ed..87b619f 100644 --- a/documentation/api-reference/classes.html +++ b/documentation/api-reference/classes.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -663,7 +663,7 @@ in components split by character type.

    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUDownloadData.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUDownloadData.html index c793331..a00a7fd 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUDownloadData.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUDownloadData.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -354,7 +354,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUStandardUpdaterController.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUStandardUpdaterController.html index 98049f1..2213b2e 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUStandardUpdaterController.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUStandardUpdaterController.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -546,7 +546,7 @@ this controller also handles enabling/disabling the menu item by checking
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUStandardUserDriver.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUStandardUserDriver.html index a1faa2a..1948e54 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUStandardUserDriver.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUStandardUserDriver.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -315,7 +315,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUpdatePermissionRequest.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUpdatePermissionRequest.html index c1b1057..ffae0df 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUpdatePermissionRequest.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUpdatePermissionRequest.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -308,7 +308,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUpdater.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUpdater.html index c80fc10..de1e69f 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUpdater.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUpdater.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -508,7 +508,8 @@ may be activated with the update resumed at a later point (automatically or manu and sets this property based on their response. If SUEnableAutomaticChecks is set in the Info.plist, this permission request is not performed however.

    -

    Setting this property will persist in the host bundle’s user defaults.

    +

    Setting this property will persist in the host bundle’s user defaults. +Only set this property if you need dynamic behavior (e.g. user preferences).

    The update schedule cycle will be reset in a short delay after the property’s new value is set. This is to allow reverting this property without kicking off a schedule change immediately

    @@ -1061,7 +1062,7 @@ The update cycle is also started automatically after the updater is started. In
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUpdaterSettings.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUpdaterSettings.html index 6bcb90d..08ec18c 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUpdaterSettings.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUpdaterSettings.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -422,7 +422,7 @@ If the setting is not found in there, then the host’s Info.plist file is l
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUserUpdateState.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUserUpdateState.html index b200c13..393686b 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUserUpdateState.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SPUUserUpdateState.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -321,7 +321,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUAppcast.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUAppcast.html index 2261b82..b71b5d4 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUAppcast.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUAppcast.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -289,7 +289,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUAppcastItem.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUAppcastItem.html index 55c94a0..beafe25 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUAppcastItem.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUAppcastItem.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -813,10 +813,12 @@ Old applications must be using Sparkle 2 or later to interpret the channel eleme

    Otherwise if the requirement is not met, the user is always prompted to install the update. In this case, the update is assumed to be a majorUpgrade.

    -

    If the update is a majorUpgrade and the update is skipped by the user, other future update alerts with the same minimumAutoupdateVersion will also be skipped.

    +

    If the update is a majorUpgrade and the update is skipped by the user, other future update alerts with the same minimumAutoupdateVersion will also be skipped automatically unless an update specifies ignoreSkippedUpgradesBelowVersion.

    This version string corresponds to the application’s CFBundleVersion

    +

    This is extracted from the <sparkle:minimumAutoupdateVersion> element.

    +

    Declaration

    @@ -868,6 +870,46 @@ Old applications must be using Sparkle 2 or later to interpret the channel eleme
    +
  • + +
    +
    +
    +
    +
    +

    Previously skipped upgrades by the user will be ignored if they skipped an update whose version precedes this version.

    + +

    This can only be applied if the update is a majorUpgrade.

    + +

    This version string corresponds to the application’s CFBundleVersion

    + +

    This is extracted from the <sparkle:ignoreSkippedUpgradesBelowVersion> element.

    + +

    Old applications must be using Sparkle 2.1 or later, otherwise this property will be ignored.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @property (nonatomic, readonly, nullable) NSString *ignoreSkippedUpgradesBelowVersion;
    + +
    +
    +

    Swift

    +
    var ignoreSkippedUpgradesBelowVersion: String? { get }
    + +
    +
    +
    +
    +
  • @@ -1434,7 +1476,7 @@ The value is an update item that will have
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUStandardVersionComparator.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUStandardVersionComparator.html index 5604957..289f645 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUStandardVersionComparator.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUStandardVersionComparator.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -364,7 +364,7 @@ These versions that are compared correspond to the CFBundleVersion
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUUpdatePermissionResponse.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUUpdatePermissionResponse.html index a65075c..c2e77c0 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUUpdatePermissionResponse.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUUpdatePermissionResponse.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -383,7 +383,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUUpdater.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUUpdater.html index 8832a2b..01c0e5f 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUUpdater.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Classes/SUUpdater.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -901,7 +901,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Constants.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Constants.html index 3fce564..98baf1e 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Constants.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Constants.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -884,7 +884,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums.html index c86966e..e4e3689 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -417,7 +417,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUNoUpdateFoundReason.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUNoUpdateFoundReason.html index f5b2152..366b0dd 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUNoUpdateFoundReason.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUNoUpdateFoundReason.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -384,7 +384,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUUpdateCheck.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUUpdateCheck.html index 2e77386..fccf8c4 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUUpdateCheck.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUUpdateCheck.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -302,7 +302,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUUserUpdateChoice.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUUserUpdateChoice.html index e430113..040bacc 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUUserUpdateChoice.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUUserUpdateChoice.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -320,7 +320,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUUserUpdateStage.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUUserUpdateStage.html index 6f4745f..890ef9f 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUUserUpdateStage.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SPUUserUpdateStage.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -320,7 +320,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SUError.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SUError.html index f372d37..6d74947 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SUError.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Enums/SUError.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -1259,7 +1259,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols.html index c5dfb39..81dabfd 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -422,7 +422,7 @@ an object that implements this protocol what actions to take and show to the use
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SPUStandardUserDriverDelegate.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SPUStandardUserDriverDelegate.html index f0aafee..b8aff35 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SPUStandardUserDriverDelegate.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SPUStandardUserDriverDelegate.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -381,7 +381,7 @@ A delegate may want to implement this method if they want to show in-app or offl
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SPUUpdaterDelegate.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SPUUpdaterDelegate.html index ad3aa97..1d0d512 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SPUUpdaterDelegate.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SPUUpdaterDelegate.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -2376,7 +2376,7 @@ even if you provide a custom comparator here.

    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SPUUserDriver.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SPUUserDriver.html index 94cfa26..64164e7 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SPUUserDriver.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SPUUserDriver.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -231,7 +231,7 @@ an object that implements this protocol what actions to take and show to the use If the state.stage is SPUUserUpdateStateInstalling, the installing update is also preserved after dismissing. In this state however, the update will also still be installed after the application is terminated.

    A reply of SPUUserUpdateChoiceSkip skips this particular version and won’t notify the user again, unless they initiate an update check themselves. - If appcastItem.majorUpgrade is YES, the major update and any future minor updates to that major release are skipped. + If appcastItem.majorUpgrade is YES, the major update and any future minor updates to that major release are skipped, unless a future minor update specifies a <sparkle:ignoreSkippedUpgradesBelowVersion> requirement. If the state.stage is SPUUpdateStateInstalling, the installation is also canceled when the update is skipped.

    @@ -808,42 +808,6 @@ Additionally, this method may be called more than once for the same download in
  • -
  • -
    - - - - -showInstallingUpdate - -
    -
    -
    -
    -
    -
    -

    Show the user that the update is installing

    - -

    Let the user know that the update is currently installing. Sparkle uses this to show an indeterminate progress bar.

    - -

    Before this point, -showExtractionReceivedProgress: may be called.

    - -
    -
    -

    Declaration

    -
    -

    Objective-C

    -
    - (void)showInstallingUpdate;
    - -
    -
    -

    Swift

    -
    func showInstallingUpdate()
    - -
    -
    -
    -
    -
  • @@ -868,7 +832,7 @@ Additionally, this method may be called more than once for the same download in

    A reply of SPUUserUpdateChoiceSkip cancels the current update that has begun installing and dismisses the update. In this circumstance, the update is canceled but this update version is not skipped in the future.

    -

    Before this point, -showInstallingUpdate will be called.

    +

    Before this point, -showExtractionReceivedProgress: or -showUpdateFoundWithAppcastItem:state:reply: may be called.

    @@ -910,9 +874,9 @@ Additionally, this method may be called more than once for the same download in
  • @@ -920,30 +884,49 @@ Additionally, this method may be called more than once for the same download in
    -

    Show or dismiss progress while a termination signal is being sent to the application from Sparkle’s installer

    +

    Show the user that the update is installing

    -

    Terminating and relaunching the application (if requested to be relaunched) may happen quickly, - or it may take some time to perform the final installation, or the termination signal can be canceled or delayed by the application or user.

    +

    Let the user know that the update is currently installing.

    -

    It is up to the implementor whether or not to decide to continue showing installation progress - or dismissing UI that won’t remain obscuring other parts of the user interface.

    - -

    This will not be invoked if the application that is being updated is already terminated.

    +

    Before this point, -showReadyToInstallAndRelaunch: or -showUpdateFoundWithAppcastItem:state:reply: will be called.

    Declaration

    Objective-C

    -
    - (void)showSendingTerminationSignal;
    +
    - (void)showInstallingUpdateWithApplicationTerminated:
    +    (BOOL)applicationTerminated;

    Swift

    -
    func showSendingTerminationSignal()
    +
    func showInstallingUpdate(withApplicationTerminated applicationTerminated: Bool)
    +
    +

    Parameters

    + + + + + + + +
    + + applicationTerminated + + +
    +

    Indicates if the application has been terminated already. +If the application hasn’t been terminated, a quit event is sent to the running application before installing the update. +If the application or user delays or cancels termination, there may be an indefinite period of time before the application fully quits. +It is up to the implementor whether or not to decide to continue showing installation progress in this case.

    +
    +
    +
  • @@ -968,7 +951,7 @@ Additionally, this method may be called more than once for the same download in the updater’s lifetime is tied to the application it is updating. This implementation must not try to reference the old bundle prior to the installation, which will no longer be around.

    -

    Before this point, -showSendingTerminationSignal or -showReadyToInstallAndRelaunch: may be called.

    +

    Before this point, -showInstallingUpdateWithApplicationTerminated: will be called.

    @@ -1202,6 +1185,80 @@ Additionally, this method may be called more than once for the same download in
    +
  • +
    + + + + -showInstallingUpdate + +
    +
    +
    +
    +
    +
    +

    Deprecated

    +

    Implement -showInstallingUpdateWithApplicationTerminated: instead.

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)showInstallingUpdate __deprecated_msg("Implement -showInstallingUpdateWithApplicationTerminated: instead.");
    + +
    +
    +

    Swift

    +
    optional func showInstallingUpdate()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Deprecated

    +

    Implement -showInstallingUpdateWithApplicationTerminated: instead.

    + +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)showSendingTerminationSignal __deprecated_msg("Implement -showInstallingUpdateWithApplicationTerminated: instead.");
    + +
    +
    +

    Swift

    +
    optional func showSendingTerminationSignal()
    + +
    +
    +
    +
    +
  • @@ -1368,7 +1425,7 @@ Additionally, this method may be called more than once for the same download in diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SUUpdaterDelegate.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SUUpdaterDelegate.html index 38c0cb2..91c40bf 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SUUpdaterDelegate.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SUUpdaterDelegate.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -1210,7 +1210,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SUVersionComparison.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SUVersionComparison.html index 9cd51d9..cfb4489 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SUVersionComparison.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SUVersionComparison.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -260,7 +260,7 @@ and NSOrderedSame if they are equivalent.

    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SUVersionDisplay.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SUVersionDisplay.html index 032159d..4e7dbfb 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SUVersionDisplay.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/Protocols/SUVersionDisplay.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -260,7 +260,7 @@ can be displayed while also leaving out unnecessary/confusing parts.

    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/classes.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/classes.html index 15544ed..87b619f 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/classes.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/classes.html @@ -16,7 +16,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -663,7 +663,7 @@ in components split by character type.

    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/index.html b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/index.html index 73e373b..b2e6ad9 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/index.html +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/index.html @@ -15,7 +15,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -218,7 +218,7 @@
    diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/search.json b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/search.json index cc0d3f7..97f4792 100644 --- a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/search.json +++ b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Protocols/SUVersionDisplay.html#/c:objc(pl)SUVersionDisplay(im)formatVersion:andVersion:":{"name":"-formatVersion:andVersion:","abstract":"

    Formats two version strings.

    ","parent_name":"SUVersionDisplay"},"Protocols/SUVersionComparison.html#/c:objc(pl)SUVersionComparison(im)compareVersion:toVersion:":{"name":"-compareVersion:toVersion:","abstract":"

    An abstract method to compare two version strings.

    ","parent_name":"SUVersionComparison"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterMayCheckForUpdates:":{"name":"-updaterMayCheckForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)feedParametersForUpdater:sendingSystemProfile:":{"name":"-feedParametersForUpdater:sendingSystemProfile:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)feedURLStringForUpdater:":{"name":"-feedURLStringForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterShouldPromptForPermissionToCheckForUpdates:":{"name":"-updaterShouldPromptForPermissionToCheckForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didFinishLoadingAppcast:":{"name":"-updater:didFinishLoadingAppcast:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)bestValidUpdateInAppcast:forUpdater:":{"name":"-bestValidUpdateInAppcast:forUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didFindValidUpdate:":{"name":"-updater:didFindValidUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterDidNotFindUpdate:":{"name":"-updaterDidNotFindUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willDownloadUpdate:withRequest:":{"name":"-updater:willDownloadUpdate:withRequest:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didDownloadUpdate:":{"name":"-updater:didDownloadUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:failedToDownloadUpdate:error:":{"name":"-updater:failedToDownloadUpdate:error:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)userDidCancelDownload:":{"name":"-userDidCancelDownload:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willExtractUpdate:":{"name":"-updater:willExtractUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didExtractUpdate:":{"name":"-updater:didExtractUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willInstallUpdate:":{"name":"-updater:willInstallUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:userDidSkipThisVersion:":{"name":"-updater:userDidSkipThisVersion:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:shouldPostponeRelaunchForUpdate:untilInvoking:":{"name":"-updater:shouldPostponeRelaunchForUpdate:untilInvoking:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:shouldPostponeRelaunchForUpdate:":{"name":"-updater:shouldPostponeRelaunchForUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterShouldRelaunchApplication:":{"name":"-updaterShouldRelaunchApplication:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterWillRelaunchApplication:":{"name":"-updaterWillRelaunchApplication:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterDidRelaunchApplication:":{"name":"-updaterDidRelaunchApplication:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)versionComparatorForUpdater:":{"name":"-versionComparatorForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)versionDisplayerForUpdater:":{"name":"-versionDisplayerForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)pathToRelaunchForUpdater:":{"name":"-pathToRelaunchForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterWillShowModalAlert:":{"name":"-updaterWillShowModalAlert:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterDidShowModalAlert:":{"name":"-updaterDidShowModalAlert:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willInstallUpdateOnQuit:immediateInstallationInvocation:":{"name":"-updater:willInstallUpdateOnQuit:immediateInstallationInvocation:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willInstallUpdateOnQuit:immediateInstallationBlock:":{"name":"-updater:willInstallUpdateOnQuit:immediateInstallationBlock:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didCancelInstallUpdateOnQuit:":{"name":"-updater:didCancelInstallUpdateOnQuit:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didAbortWithError:":{"name":"-updater:didAbortWithError:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdatePermissionRequest:reply:":{"name":"-showUpdatePermissionRequest:reply:","abstract":"

    Show an updater permission request to the user

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUserInitiatedUpdateCheckWithCancellation:":{"name":"-showUserInitiatedUpdateCheckWithCancellation:","abstract":"

    Show the user initating an update check

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateFoundWithAppcastItem:state:reply:":{"name":"-showUpdateFoundWithAppcastItem:state:reply:","abstract":"

    Show the user a new update is found.

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateReleaseNotesWithDownloadData:":{"name":"-showUpdateReleaseNotesWithDownloadData:","abstract":"

    Show the user the release notes for the new update

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateReleaseNotesFailedToDownloadWithError:":{"name":"-showUpdateReleaseNotesFailedToDownloadWithError:","abstract":"

    Show the user that the new update’s release notes could not be downloaded

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateNotFoundWithError:acknowledgement:":{"name":"-showUpdateNotFoundWithError:acknowledgement:","abstract":"

    Show the user a new update was not found

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdaterError:acknowledgement:":{"name":"-showUpdaterError:acknowledgement:","abstract":"

    Show the user an update error occurred

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadInitiatedWithCancellation:":{"name":"-showDownloadInitiatedWithCancellation:","abstract":"

    Show the user that downloading the new update initiated

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadDidReceiveExpectedContentLength:":{"name":"-showDownloadDidReceiveExpectedContentLength:","abstract":"

    Show the user the content length of the new update that will be downloaded

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadDidReceiveDataOfLength:":{"name":"-showDownloadDidReceiveDataOfLength:","abstract":"

    Show the user that the update download received more data

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadDidStartExtractingUpdate":{"name":"-showDownloadDidStartExtractingUpdate","abstract":"

    Show the user that the update finished downloading and started extracting

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showExtractionReceivedProgress:":{"name":"-showExtractionReceivedProgress:","abstract":"

    Show the user that the update is extracting with progress

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showInstallingUpdate":{"name":"-showInstallingUpdate","abstract":"

    Show the user that the update is installing

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showReadyToInstallAndRelaunch:":{"name":"-showReadyToInstallAndRelaunch:","abstract":"

    Show the user that the update is ready to install & relaunch

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showSendingTerminationSignal":{"name":"-showSendingTerminationSignal","abstract":"

    Show or dismiss progress while a termination signal is being sent to the application from Sparkle’s installer

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateInstalledAndRelaunched:acknowledgement:":{"name":"-showUpdateInstalledAndRelaunched:acknowledgement:","abstract":"

    Show the user that the update installation finished

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateInFocus":{"name":"-showUpdateInFocus","abstract":"

    Show the user the current presented update or its progress in utmost focus

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)dismissUpdateInstallation":{"name":"-dismissUpdateInstallation","abstract":"

    Dismiss the current update installation

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateNotFoundWithAcknowledgement:":{"name":"-showUpdateNotFoundWithAcknowledgement:","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateInstallationDidFinishWithAcknowledgement:":{"name":"-showUpdateInstallationDidFinishWithAcknowledgement:","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)dismissUserInitiatedUpdateCheck":{"name":"-dismissUserInitiatedUpdateCheck","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:mayPerformUpdateCheck:error:":{"name":"-updater:mayPerformUpdateCheck:error:","abstract":"

    Returns whether to allow Sparkle to check for updates.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)allowedChannelsForUpdater:":{"name":"-allowedChannelsForUpdater:","abstract":"

    Returns the set of Sparkle channels the updater is allowed to find new updates from.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)feedURLStringForUpdater:":{"name":"-feedURLStringForUpdater:","abstract":"

    Returns a custom appcast URL used for checking for new updates.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)feedParametersForUpdater:sendingSystemProfile:":{"name":"-feedParametersForUpdater:sendingSystemProfile:","abstract":"

    Returns additional parameters to append to the appcast URL’s query string.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterShouldPromptForPermissionToCheckForUpdates:":{"name":"-updaterShouldPromptForPermissionToCheckForUpdates:","abstract":"

    Returns whether Sparkle should prompt the user about checking for new updates automatically.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)allowedSystemProfileKeysForUpdater:":{"name":"-allowedSystemProfileKeysForUpdater:","abstract":"

    Returns an allowed list of system profile keys to be appended to the appcast URL’s query string.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didFinishLoadingAppcast:":{"name":"-updater:didFinishLoadingAppcast:","abstract":"

    Called after Sparkle has downloaded the appcast from the remote server.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didFindValidUpdate:":{"name":"-updater:didFindValidUpdate:","abstract":"

    Called when a new valid update is found by the update driver.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterDidNotFindUpdate:error:":{"name":"-updaterDidNotFindUpdate:error:","abstract":"

    Called when a valid new update is not found.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterDidNotFindUpdate:":{"name":"-updaterDidNotFindUpdate:","abstract":"

    Called when a valid new update is not found.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)bestValidUpdateInAppcast:forUpdater:":{"name":"-bestValidUpdateInAppcast:forUpdater:","abstract":"

    Returns the item in the appcast corresponding to the update that should be installed.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:shouldProceedWithUpdate:updateCheck:error:":{"name":"-updater:shouldProceedWithUpdate:updateCheck:error:","abstract":"

    Returns whether or not the updater should proceed with the new chosen update from the appcast.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:userDidSkipThisVersion:":{"name":"-updater:userDidSkipThisVersion:","abstract":"

    Called when an update is skipped by the user.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:shouldDownloadReleaseNotesForUpdate:":{"name":"-updater:shouldDownloadReleaseNotesForUpdate:","abstract":"

    Returns whether the release notes (if available) should be downloaded after an update is found and shown.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willDownloadUpdate:withRequest:":{"name":"-updater:willDownloadUpdate:withRequest:","abstract":"

    Called immediately before downloading the specified update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didDownloadUpdate:":{"name":"-updater:didDownloadUpdate:","abstract":"

    Called immediately after succesfull download of the specified update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:failedToDownloadUpdate:error:":{"name":"-updater:failedToDownloadUpdate:error:","abstract":"

    Called after the specified update failed to download.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)userDidCancelDownload:":{"name":"-userDidCancelDownload:","abstract":"

    Called when the user cancels an update while it is being downloaded.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willExtractUpdate:":{"name":"-updater:willExtractUpdate:","abstract":"

    Called immediately before extracting the specified downloaded update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didExtractUpdate:":{"name":"-updater:didExtractUpdate:","abstract":"

    Called immediately after extracting the specified downloaded update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willInstallUpdate:":{"name":"-updater:willInstallUpdate:","abstract":"

    Called immediately before installing the specified update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:shouldPostponeRelaunchForUpdate:untilInvokingBlock:":{"name":"-updater:shouldPostponeRelaunchForUpdate:untilInvokingBlock:","abstract":"

    Returns whether the relaunch should be delayed in order to perform other tasks.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterShouldRelaunchApplication:":{"name":"-updaterShouldRelaunchApplication:","abstract":"

    Returns whether the application should be relaunched at all.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterWillRelaunchApplication:":{"name":"-updaterWillRelaunchApplication:","abstract":"

    Called immediately before relaunching.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)versionComparatorForUpdater:":{"name":"-versionComparatorForUpdater:","abstract":"

    Returns an object that compares version numbers to determine their arithmetic relation to each other.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willScheduleUpdateCheckAfterDelay:":{"name":"-updater:willScheduleUpdateCheckAfterDelay:","abstract":"

    Called when a background update will be scheduled after a delay.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterWillNotScheduleUpdateCheck:":{"name":"-updaterWillNotScheduleUpdateCheck:","abstract":"

    Called when no update checks will be scheduled in the future.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)decryptionPasswordForUpdater:":{"name":"-decryptionPasswordForUpdater:","abstract":"

    Returns the decryption password (if any) which is used to extract the update archive DMG.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willInstallUpdateOnQuit:immediateInstallationBlock:":{"name":"-updater:willInstallUpdateOnQuit:immediateInstallationBlock:","abstract":"

    Called when an update is scheduled to be silently installed on quit after downloading the update automatically.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didAbortWithError:":{"name":"-updater:didAbortWithError:","abstract":"

    Called after the update driver aborts due to an error.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didFinishUpdateCycleForUpdateCheck:error:":{"name":"-updater:didFinishUpdateCycleForUpdateCheck:error:","abstract":"

    Called after the update driver finishes.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterMayCheckForUpdates:":{"name":"-updaterMayCheckForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverWillShowModalAlert":{"name":"-standardUserDriverWillShowModalAlert","abstract":"

    Called before showing a modal alert window,","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverDidShowModalAlert":{"name":"-standardUserDriverDidShowModalAlert","abstract":"

    Called after showing a modal alert window,","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverRequestsVersionDisplayer":{"name":"-standardUserDriverRequestsVersionDisplayer","abstract":"

    Returns an object that formats version numbers for display to the user.","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverShowVersionHistoryForAppcastItem:":{"name":"-standardUserDriverShowVersionHistoryForAppcastItem:","abstract":"

    Handles showing the full release notes to the user.

    ","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html":{"name":"SPUStandardUserDriverDelegate","abstract":"

    A protocol for Sparkle’s standard user driver’s delegate

    "},"Protocols/SPUUpdaterDelegate.html":{"name":"SPUUpdaterDelegate","abstract":"

    Provides delegation methods to control the behavior of an SPUUpdater object.

    "},"Protocols/SPUUserDriver.html":{"name":"SPUUserDriver","abstract":"

    The API in Sparkle for controlling the user interaction.

    "},"Protocols/SUUpdaterDelegate.html":{"name":"SUUpdaterDelegate","abstract":"

    Undocumented

    "},"Protocols/SUVersionComparison.html":{"name":"SUVersionComparison","abstract":"

    Provides version comparison facilities for Sparkle.

    "},"Protocols/SUVersionDisplay.html":{"name":"SUVersionDisplay","abstract":"

    Applies special display formatting to version numbers.

    "},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonUnknown":{"name":"SPUNoUpdateFoundReasonUnknown","abstract":"

    A new update is unavailable for an unknown reason.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonOnLatestVersion":{"name":"SPUNoUpdateFoundReasonOnLatestVersion","abstract":"

    A new update is unavailable because the user is on the latest known version in the appcast feed.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonOnNewerThanLatestVersion":{"name":"SPUNoUpdateFoundReasonOnNewerThanLatestVersion","abstract":"

    A new update is unavailable because the user is on a version newer than the latest known version in the appcast feed.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonSystemIsTooOld":{"name":"SPUNoUpdateFoundReasonSystemIsTooOld","abstract":"

    A new update is unavailable because the user’s operating system version is too old for the update.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonSystemIsTooNew":{"name":"SPUNoUpdateFoundReasonSystemIsTooNew","abstract":"

    A new update is unavailable because the user’s operating system version is too new for the update.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SUError.html#/c:@E@SUError@SUNoPublicDSAFoundError":{"name":"SUNoPublicDSAFoundError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInsufficientSigningError":{"name":"SUInsufficientSigningError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInsecureFeedURLError":{"name":"SUInsecureFeedURLError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidFeedURLError":{"name":"SUInvalidFeedURLError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidUpdaterError":{"name":"SUInvalidUpdaterError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidHostBundleIdentifierError":{"name":"SUInvalidHostBundleIdentifierError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidHostVersionError":{"name":"SUInvalidHostVersionError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAppcastParseError":{"name":"SUAppcastParseError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUNoUpdateError":{"name":"SUNoUpdateError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAppcastError":{"name":"SUAppcastError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SURunningFromDiskImageError":{"name":"SURunningFromDiskImageError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUResumeAppcastError":{"name":"SUResumeAppcastError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SURunningTranslocated":{"name":"SURunningTranslocated","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUWebKitTerminationError":{"name":"SUWebKitTerminationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUTemporaryDirectoryError":{"name":"SUTemporaryDirectoryError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUDownloadError":{"name":"SUDownloadError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUUnarchivingError":{"name":"SUUnarchivingError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUSignatureError":{"name":"SUSignatureError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUValidationError":{"name":"SUValidationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUFileCopyFailure":{"name":"SUFileCopyFailure","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAuthenticationFailure":{"name":"SUAuthenticationFailure","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUMissingUpdateError":{"name":"SUMissingUpdateError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUMissingInstallerToolError":{"name":"SUMissingInstallerToolError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SURelaunchError":{"name":"SURelaunchError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationError":{"name":"SUInstallationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUDowngradeError":{"name":"SUDowngradeError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationCanceledError":{"name":"SUInstallationCanceledError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationAuthorizeLaterError":{"name":"SUInstallationAuthorizeLaterError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUNotValidUpdateError":{"name":"SUNotValidUpdateError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAgentInvalidationError":{"name":"SUAgentInvalidationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUIncorrectAPIUsageError":{"name":"SUIncorrectAPIUsageError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SPUUserUpdateStage.html#/c:@E@SPUUserUpdateStage@SPUUserUpdateStageNotDownloaded":{"name":"SPUUserUpdateStageNotDownloaded","abstract":"

    The update has not been downloaded.

    ","parent_name":"SPUUserUpdateStage"},"Enums/SPUUserUpdateStage.html#/c:@E@SPUUserUpdateStage@SPUUserUpdateStageDownloaded":{"name":"SPUUserUpdateStageDownloaded","abstract":"

    The update has already been downloaded but not begun installing.

    ","parent_name":"SPUUserUpdateStage"},"Enums/SPUUserUpdateStage.html#/c:@E@SPUUserUpdateStage@SPUUserUpdateStageInstalling":{"name":"SPUUserUpdateStageInstalling","abstract":"

    The update has already been downloaded and began installing in the background.

    ","parent_name":"SPUUserUpdateStage"},"Enums/SPUUserUpdateChoice.html#/c:@E@SPUUserUpdateChoice@SPUUserUpdateChoiceSkip":{"name":"SPUUserUpdateChoiceSkip","abstract":"

    Dismisses the update and skips being notified of it in the future.

    ","parent_name":"SPUUserUpdateChoice"},"Enums/SPUUserUpdateChoice.html#/c:@E@SPUUserUpdateChoice@SPUUserUpdateChoiceInstall":{"name":"SPUUserUpdateChoiceInstall","abstract":"

    Downloads (if needed) and installs the update.

    ","parent_name":"SPUUserUpdateChoice"},"Enums/SPUUserUpdateChoice.html#/c:@E@SPUUserUpdateChoice@SPUUserUpdateChoiceDismiss":{"name":"SPUUserUpdateChoiceDismiss","abstract":"

    Dismisses the update until Sparkle reminds the user of it at a later time.

    ","parent_name":"SPUUserUpdateChoice"},"Enums/SPUUpdateCheck.html#/c:@E@SPUUpdateCheck@SPUUpdateCheckUpdates":{"name":"SPUUpdateCheckUpdates","abstract":"

    The user-initiated update check corresponding to -[SPUUpdater checkForUpdates].

    ","parent_name":"SPUUpdateCheck"},"Enums/SPUUpdateCheck.html#/c:@E@SPUUpdateCheck@SPUUpdateCheckUpdatesInBackground":{"name":"SPUUpdateCheckUpdatesInBackground","abstract":"

    The background scheduled update check corresponding to -[SPUUpdater checkForUpdatesInBackground].

    ","parent_name":"SPUUpdateCheck"},"Enums/SPUUpdateCheck.html#/c:@E@SPUUpdateCheck@SPUUpdateCheckUpdateInformation":{"name":"SPUUpdateCheckUpdateInformation","abstract":"

    The informational probe update check corresponding to -[SPUUpdater checkForUpdateInformation].

    ","parent_name":"SPUUpdateCheck"},"Enums/SPUUpdateCheck.html":{"name":"SPUUpdateCheck","abstract":"

    Describes the type of update check being performed.

    "},"Enums/SPUUserUpdateChoice.html":{"name":"SPUUserUpdateChoice","abstract":"

    A choice made by the user when prompted with a new update.

    "},"Enums/SPUUserUpdateStage.html":{"name":"SPUUserUpdateStage","abstract":"

    Describes the current stage an update is undergoing.

    "},"Enums/SUError.html":{"name":"SUError","abstract":"

    Undocumented

    "},"Enums/SPUNoUpdateFoundReason.html":{"name":"SPUNoUpdateFoundReason","abstract":"

    The reason why a new update is not available.

    "},"Constants.html#/c:@SUUpdaterDidFinishLoadingAppCastNotification":{"name":"SUUpdaterDidFinishLoadingAppCastNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterDidFindValidUpdateNotification":{"name":"SUUpdaterDidFindValidUpdateNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterDidNotFindUpdateNotification":{"name":"SUUpdaterDidNotFindUpdateNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterWillRestartNotification":{"name":"SUUpdaterWillRestartNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterAppcastItemNotificationKey":{"name":"SUUpdaterAppcastItemNotificationKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterAppcastNotificationKey":{"name":"SUUpdaterAppcastNotificationKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerApplicationNameKey":{"name":"SUSystemProfilerApplicationNameKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerApplicationVersionKey":{"name":"SUSystemProfilerApplicationVersionKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPU64bitKey":{"name":"SUSystemProfilerCPU64bitKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUCountKey":{"name":"SUSystemProfilerCPUCountKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUFrequencyKey":{"name":"SUSystemProfilerCPUFrequencyKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUTypeKey":{"name":"SUSystemProfilerCPUTypeKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUSubtypeKey":{"name":"SUSystemProfilerCPUSubtypeKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerHardwareModelKey":{"name":"SUSystemProfilerHardwareModelKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerMemoryKey":{"name":"SUSystemProfilerMemoryKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerOperatingSystemVersionKey":{"name":"SUSystemProfilerOperatingSystemVersionKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerPreferredLanguageKey":{"name":"SUSystemProfilerPreferredLanguageKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSparkleErrorDomain":{"name":"SUSparkleErrorDomain","abstract":"

    Error domain used by Sparkle

    "},"Constants.html#/c:@SPUNoUpdateFoundReasonKey":{"name":"SPUNoUpdateFoundReasonKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SPULatestAppcastItemFoundKey":{"name":"SPULatestAppcastItemFoundKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SPUNoUpdateFoundUserInitiatedKey":{"name":"SPUNoUpdateFoundUserInitiatedKey","abstract":"

    Undocumented

    "},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)delegate":{"name":"delegate","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(cm)sharedUpdater":{"name":"+sharedUpdater","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(cm)updaterForBundle:":{"name":"+updaterForBundle:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)initForBundle:":{"name":"-initForBundle:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)checkForUpdates:":{"name":"-checkForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)validateMenuItem:":{"name":"-validateMenuItem:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)checkForUpdatesInBackground":{"name":"-checkForUpdatesInBackground","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)automaticallyChecksForUpdates":{"name":"automaticallyChecksForUpdates","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)automaticallyDownloadsUpdates":{"name":"automaticallyDownloadsUpdates","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)updateCheckInterval":{"name":"updateCheckInterval","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)checkForUpdateInformation":{"name":"-checkForUpdateInformation","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)feedURL":{"name":"feedURL","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)hostBundle":{"name":"hostBundle","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)sparkleBundle":{"name":"sparkleBundle","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)userAgentString":{"name":"userAgentString","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)httpHeaders":{"name":"httpHeaders","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)sendsSystemProfile":{"name":"sendsSystemProfile","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)decryptionPassword":{"name":"decryptionPassword","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)lastUpdateCheckDate":{"name":"lastUpdateCheckDate","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)resetUpdateCycle":{"name":"-resetUpdateCycle","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)updateInProgress":{"name":"updateInProgress","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(im)initWithAutomaticUpdateChecks:sendSystemProfile:":{"name":"-initWithAutomaticUpdateChecks:sendSystemProfile:","abstract":"

    Initializes a new update permission response instance.

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(py)automaticUpdateChecks":{"name":"automaticUpdateChecks","abstract":"

    A read-only property indicating whether automatic update checks are allowed or not.

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(py)sendSystemProfile":{"name":"sendSystemProfile","abstract":"

    A read-only property indicating if system profile should be sent or not.

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUStandardVersionComparator.html#/c:objc(cs)SUStandardVersionComparator(im)init":{"name":"-init","abstract":"

    Initializes a new instance of the standard version comparator.

    ","parent_name":"SUStandardVersionComparator"},"Classes/SUStandardVersionComparator.html#/c:objc(cs)SUStandardVersionComparator(cpy)defaultComparator":{"name":"defaultComparator","abstract":"

    A singleton instance of the comparator.

    ","parent_name":"SUStandardVersionComparator"},"Classes/SUStandardVersionComparator.html#/c:objc(cs)SUStandardVersionComparator(im)compareVersion:toVersion:":{"name":"-compareVersion:toVersion:","abstract":"

    Compares two version strings through textual analysis.

    ","parent_name":"SUStandardVersionComparator"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)versionString":{"name":"versionString","abstract":"

    The version of the update item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)displayVersionString":{"name":"displayVersionString","abstract":"

    The human-readable display version of the update item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)fileURL":{"name":"fileURL","abstract":"

    The file URL to the update item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)contentLength":{"name":"contentLength","abstract":"

    The content length of the download in bytes.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)infoURL":{"name":"infoURL","abstract":"

    The info URL to the update item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)informationOnlyUpdate":{"name":"informationOnlyUpdate","abstract":"

    Indicates whether or not the update item is only informational and has no download.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)title":{"name":"title","abstract":"

    The title of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)dateString":{"name":"dateString","abstract":"

    The date string of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)date":{"name":"date","abstract":"

    The date constructed from the dateString property if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)releaseNotesURL":{"name":"releaseNotesURL","abstract":"

    The release notes URL of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)itemDescription":{"name":"itemDescription","abstract":"

    The description of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)fullReleaseNotesURL":{"name":"fullReleaseNotesURL","abstract":"

    The full release notes URL of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)minimumSystemVersion":{"name":"minimumSystemVersion","abstract":"

    The required minimum system operating version string for this update if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)minimumOperatingSystemVersionIsOK":{"name":"minimumOperatingSystemVersionIsOK","abstract":"

    Indicates whether or not the current running system passes the minimumSystemVersion requirement.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)maximumSystemVersion":{"name":"maximumSystemVersion","abstract":"

    The required maximum system operating version string for this update if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)maximumOperatingSystemVersionIsOK":{"name":"maximumOperatingSystemVersionIsOK","abstract":"

    Indicates whether or not the current running system passes the maximumSystemVersion requirement.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)channel":{"name":"channel","abstract":"

    The channel the update item is on if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)installationType":{"name":"installationType","abstract":"

    The installation type of the update at fileURL

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)phasedRolloutInterval":{"name":"phasedRolloutInterval","abstract":"

    The phased rollout interval of the update item in seconds if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)minimumAutoupdateVersion":{"name":"minimumAutoupdateVersion","abstract":"

    The minimum bundle version string this update requires for automatically downloading and installing updates if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)majorUpgrade":{"name":"majorUpgrade","abstract":"

    Indicates whether or not the update item is a major upgrade.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)criticalUpdate":{"name":"criticalUpdate","abstract":"

    Indicates whether or not the update item is critical.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)osString":{"name":"osString","abstract":"

    Specifies the operating system the download update is available for if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)macOsUpdate":{"name":"macOsUpdate","abstract":"

    Indicates whether or not this update item is for macOS.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)deltaUpdates":{"name":"deltaUpdates","abstract":"

    The delta updates for this update item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)deltaUpdate":{"name":"deltaUpdate","abstract":"

    Indicates whether or not the update item is a delta update.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)propertiesDictionary":{"name":"propertiesDictionary","abstract":"

    The dictionary representing the entire appcast item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(cm)emptyAppcastItem":{"name":"+emptyAppcastItem","abstract":"

    An empty appcast item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)initWithDictionary:failureReason:":{"name":"-initWithDictionary:failureReason:","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)initWithDictionary:relativeToURL:failureReason:":{"name":"-initWithDictionary:relativeToURL:failureReason:","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcast.html#/c:objc(cs)SUAppcast(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SUAppcast"},"Classes/SUAppcast.html#/c:objc(cs)SUAppcast(py)items":{"name":"items","abstract":"

    The collection of update items.

    ","parent_name":"SUAppcast"},"Classes/SPUUserUpdateState.html#/c:objc(cs)SPUUserUpdateState(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SPUUserUpdateState"},"Classes/SPUUserUpdateState.html#/c:objc(cs)SPUUserUpdateState(py)stage":{"name":"stage","abstract":"

    The current update stage.

    ","parent_name":"SPUUserUpdateState"},"Classes/SPUUserUpdateState.html#/c:objc(cs)SPUUserUpdateState(py)userInitiated":{"name":"userInitiated","abstract":"

    Indicates whether or not the update check was initiated by the user.

    ","parent_name":"SPUUserUpdateState"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(im)initWithHostBundle:":{"name":"-initWithHostBundle:","abstract":"

    Undocumented

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)automaticallyChecksForUpdates":{"name":"automaticallyChecksForUpdates","abstract":"

    Indicates whether or not automatic update checks are enabled.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)updateCheckInterval":{"name":"updateCheckInterval","abstract":"

    The regular update check interval.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)allowsAutomaticUpdates":{"name":"allowsAutomaticUpdates","abstract":"

    Indicates whether or not automatically downloading updates is allowed to be turned on by the user.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)automaticallyDownloadsUpdates":{"name":"automaticallyDownloadsUpdates","abstract":"

    Indicates whether or not automatically downloading updates is enabled by the user or developer.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)sendsSystemProfile":{"name":"sendsSystemProfile","abstract":"

    Indicates whether or not anonymous system profile information is sent when checking for updates.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)initWithHostBundle:applicationBundle:userDriver:delegate:":{"name":"-initWithHostBundle:applicationBundle:userDriver:delegate:","abstract":"

    Initializes a new SPUUpdater instance

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)init":{"name":"-init","abstract":"

    Use -initWithHostBundle:applicationBundle:userDriver:delegate: or SPUStandardUpdaterController standard adapter instead.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)startUpdater:":{"name":"-startUpdater:","abstract":"

    Starts the updater.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)checkForUpdates":{"name":"-checkForUpdates","abstract":"

    Checks for updates, and displays progress while doing so if needed.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)checkForUpdatesInBackground":{"name":"-checkForUpdatesInBackground","abstract":"

    Checks for updates, but does not display any UI unless an update is found.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)checkForUpdateInformation":{"name":"-checkForUpdateInformation","abstract":"

    Begins a “probing” check for updates which will not actually offer to","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)canCheckForUpdates":{"name":"canCheckForUpdates","abstract":"

    A property indicating whether or not updates can be checked by the user.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)sessionInProgress":{"name":"sessionInProgress","abstract":"

    A property indicating whether or not an update session is in progress.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)automaticallyChecksForUpdates":{"name":"automaticallyChecksForUpdates","abstract":"

    A property indicating whether or not to check for updates automatically.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)updateCheckInterval":{"name":"updateCheckInterval","abstract":"

    A property indicating the current automatic update check interval in seconds.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)automaticallyDownloadsUpdates":{"name":"automaticallyDownloadsUpdates","abstract":"

    A property indicating whether or not updates can be automatically downloaded in the background.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)feedURL":{"name":"feedURL","abstract":"

    The URL of the appcast used to download update information.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)hostBundle":{"name":"hostBundle","abstract":"

    The host bundle that is being updated.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)userAgentString":{"name":"userAgentString","abstract":"

    The user agent used when checking for updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)httpHeaders":{"name":"httpHeaders","abstract":"

    The HTTP headers used when checking for updates, downloading release notes, and downloading updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)sendsSystemProfile":{"name":"sendsSystemProfile","abstract":"

    A property indicating whether or not the user’s system profile information is sent when checking for updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)lastUpdateCheckDate":{"name":"lastUpdateCheckDate","abstract":"

    The date of the last update check or nil if no check has been performed yet.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)resetUpdateCycle":{"name":"-resetUpdateCycle","abstract":"

    Appropriately schedules or cancels the update checking timer according to the preferences for time interval and automatic checks.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)systemProfileArray":{"name":"systemProfileArray","abstract":"

    The system profile information that is sent when checking for updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdatePermissionRequest.html#/c:objc(cs)SPUUpdatePermissionRequest(im)initWithSystemProfile:":{"name":"-initWithSystemProfile:","abstract":"

    Initializes a new update permission request instance.

    ","parent_name":"SPUUpdatePermissionRequest"},"Classes/SPUUpdatePermissionRequest.html#/c:objc(cs)SPUUpdatePermissionRequest(py)systemProfile":{"name":"systemProfile","abstract":"

    A read-only property for the user’s system profile.

    ","parent_name":"SPUUpdatePermissionRequest"},"Classes/SPUStandardUserDriver.html#/c:objc(cs)SPUStandardUserDriver(im)initWithHostBundle:delegate:":{"name":"-initWithHostBundle:delegate:","abstract":"

    Initializes a Sparkle’s standard user driver for user update interactions

    ","parent_name":"SPUStandardUserDriver"},"Classes/SPUStandardUserDriver.html#/c:objc(cs)SPUStandardUserDriver(im)init":{"name":"-init","abstract":"

    Use initWithHostBundle:delegate: instead.

    ","parent_name":"SPUStandardUserDriver"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController@updaterDelegate":{"name":"updaterDelegate","abstract":"

    Interface builder outlet for the updater’s delegate.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController@userDriverDelegate":{"name":"userDriverDelegate","abstract":"

    Interface builder outlet for the user driver’s delegate.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(py)updater":{"name":"updater","abstract":"

    Accessible property for the updater. Some properties on the updater can be binded via KVO

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(py)userDriver":{"name":"userDriver","abstract":"

    Accessible property for the updater’s user driver.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)init":{"name":"-init","abstract":"

    Create a new SPUStandardUpdaterController from a nib.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)initWithUpdaterDelegate:userDriverDelegate:":{"name":"-initWithUpdaterDelegate:userDriverDelegate:","abstract":"

    Create a new SPUStandardUpdaterController programmatically.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)initWithStartingUpdater:updaterDelegate:userDriverDelegate:":{"name":"-initWithStartingUpdater:updaterDelegate:userDriverDelegate:","abstract":"

    Create a new SPUStandardUpdaterController programmatically allowing you to specify whether or not to start the updater immediately.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)startUpdater":{"name":"-startUpdater","abstract":"

    Starts the updater if it has not already been started.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)checkForUpdates:":{"name":"-checkForUpdates:","abstract":"

    Explicitly checks for updates and displays a progress dialog while doing so.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)data":{"name":"data","abstract":"

    The raw data that was downloaded.

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)URL":{"name":"URL","abstract":"

    The URL that was fetched from.

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)textEncodingName":{"name":"textEncodingName","abstract":"

    The IANA charset encoding name if available. Eg: “utf-8”

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)MIMEType":{"name":"MIMEType","abstract":"

    The MIME type if available. Eg: “text/plain”

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html":{"name":"SPUDownloadData","abstract":"

    A class for containing downloaded data along with some information about it.

    "},"Classes/SPUStandardUpdaterController.html":{"name":"SPUStandardUpdaterController","abstract":"

    A controller class that instantiates a SPUUpdater and allows binding UI to its updater settings.

    "},"Classes/SPUStandardUserDriver.html":{"name":"SPUStandardUserDriver","abstract":"

    Sparkle’s standard built-in user driver for updater interactions

    "},"Classes/SPUUpdatePermissionRequest.html":{"name":"SPUUpdatePermissionRequest","abstract":"

    This class represents information needed to make a permission request for checking updates.

    "},"Classes/SPUUpdater.html":{"name":"SPUUpdater","abstract":"

    The main API in Sparkle for controlling the update mechanism.

    "},"Classes/SPUUpdaterSettings.html":{"name":"SPUUpdaterSettings","abstract":"

    This class can be used for reading certain updater settings.

    "},"Classes/SPUUserUpdateState.html":{"name":"SPUUserUpdateState","abstract":"

    This represents the user’s current update state.

    "},"Classes/SUAppcast.html":{"name":"SUAppcast","abstract":"

    The appcast representing a collection of SUAppcastItem items in the feed.

    "},"Classes/SUAppcastItem.html":{"name":"SUAppcastItem","abstract":"

    The appcast item describing an update in the application’s appcast feed.

    "},"Classes/SUStandardVersionComparator.html":{"name":"SUStandardVersionComparator","abstract":"

    Sparkle’s default version comparator.

    "},"Classes/SUUpdatePermissionResponse.html":{"name":"SUUpdatePermissionResponse","abstract":"

    This class represents a response for permission to check updates.

    "},"Classes/SUUpdater.html":{"name":"SUUpdater","abstract":"

    The legacy API in Sparkle for controlling the update mechanism.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Constants.html":{"name":"Constants","abstract":"

    The following constants are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "}} \ No newline at end of file +{"Protocols/SUVersionDisplay.html#/c:objc(pl)SUVersionDisplay(im)formatVersion:andVersion:":{"name":"-formatVersion:andVersion:","abstract":"

    Formats two version strings.

    ","parent_name":"SUVersionDisplay"},"Protocols/SUVersionComparison.html#/c:objc(pl)SUVersionComparison(im)compareVersion:toVersion:":{"name":"-compareVersion:toVersion:","abstract":"

    An abstract method to compare two version strings.

    ","parent_name":"SUVersionComparison"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterMayCheckForUpdates:":{"name":"-updaterMayCheckForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)feedParametersForUpdater:sendingSystemProfile:":{"name":"-feedParametersForUpdater:sendingSystemProfile:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)feedURLStringForUpdater:":{"name":"-feedURLStringForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterShouldPromptForPermissionToCheckForUpdates:":{"name":"-updaterShouldPromptForPermissionToCheckForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didFinishLoadingAppcast:":{"name":"-updater:didFinishLoadingAppcast:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)bestValidUpdateInAppcast:forUpdater:":{"name":"-bestValidUpdateInAppcast:forUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didFindValidUpdate:":{"name":"-updater:didFindValidUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterDidNotFindUpdate:":{"name":"-updaterDidNotFindUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willDownloadUpdate:withRequest:":{"name":"-updater:willDownloadUpdate:withRequest:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didDownloadUpdate:":{"name":"-updater:didDownloadUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:failedToDownloadUpdate:error:":{"name":"-updater:failedToDownloadUpdate:error:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)userDidCancelDownload:":{"name":"-userDidCancelDownload:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willExtractUpdate:":{"name":"-updater:willExtractUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didExtractUpdate:":{"name":"-updater:didExtractUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willInstallUpdate:":{"name":"-updater:willInstallUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:userDidSkipThisVersion:":{"name":"-updater:userDidSkipThisVersion:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:shouldPostponeRelaunchForUpdate:untilInvoking:":{"name":"-updater:shouldPostponeRelaunchForUpdate:untilInvoking:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:shouldPostponeRelaunchForUpdate:":{"name":"-updater:shouldPostponeRelaunchForUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterShouldRelaunchApplication:":{"name":"-updaterShouldRelaunchApplication:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterWillRelaunchApplication:":{"name":"-updaterWillRelaunchApplication:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterDidRelaunchApplication:":{"name":"-updaterDidRelaunchApplication:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)versionComparatorForUpdater:":{"name":"-versionComparatorForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)versionDisplayerForUpdater:":{"name":"-versionDisplayerForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)pathToRelaunchForUpdater:":{"name":"-pathToRelaunchForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterWillShowModalAlert:":{"name":"-updaterWillShowModalAlert:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterDidShowModalAlert:":{"name":"-updaterDidShowModalAlert:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willInstallUpdateOnQuit:immediateInstallationInvocation:":{"name":"-updater:willInstallUpdateOnQuit:immediateInstallationInvocation:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willInstallUpdateOnQuit:immediateInstallationBlock:":{"name":"-updater:willInstallUpdateOnQuit:immediateInstallationBlock:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didCancelInstallUpdateOnQuit:":{"name":"-updater:didCancelInstallUpdateOnQuit:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didAbortWithError:":{"name":"-updater:didAbortWithError:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdatePermissionRequest:reply:":{"name":"-showUpdatePermissionRequest:reply:","abstract":"

    Show an updater permission request to the user

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUserInitiatedUpdateCheckWithCancellation:":{"name":"-showUserInitiatedUpdateCheckWithCancellation:","abstract":"

    Show the user initating an update check

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateFoundWithAppcastItem:state:reply:":{"name":"-showUpdateFoundWithAppcastItem:state:reply:","abstract":"

    Show the user a new update is found.

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateReleaseNotesWithDownloadData:":{"name":"-showUpdateReleaseNotesWithDownloadData:","abstract":"

    Show the user the release notes for the new update

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateReleaseNotesFailedToDownloadWithError:":{"name":"-showUpdateReleaseNotesFailedToDownloadWithError:","abstract":"

    Show the user that the new update’s release notes could not be downloaded

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateNotFoundWithError:acknowledgement:":{"name":"-showUpdateNotFoundWithError:acknowledgement:","abstract":"

    Show the user a new update was not found

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdaterError:acknowledgement:":{"name":"-showUpdaterError:acknowledgement:","abstract":"

    Show the user an update error occurred

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadInitiatedWithCancellation:":{"name":"-showDownloadInitiatedWithCancellation:","abstract":"

    Show the user that downloading the new update initiated

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadDidReceiveExpectedContentLength:":{"name":"-showDownloadDidReceiveExpectedContentLength:","abstract":"

    Show the user the content length of the new update that will be downloaded

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadDidReceiveDataOfLength:":{"name":"-showDownloadDidReceiveDataOfLength:","abstract":"

    Show the user that the update download received more data

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadDidStartExtractingUpdate":{"name":"-showDownloadDidStartExtractingUpdate","abstract":"

    Show the user that the update finished downloading and started extracting

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showExtractionReceivedProgress:":{"name":"-showExtractionReceivedProgress:","abstract":"

    Show the user that the update is extracting with progress

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showReadyToInstallAndRelaunch:":{"name":"-showReadyToInstallAndRelaunch:","abstract":"

    Show the user that the update is ready to install & relaunch

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showInstallingUpdateWithApplicationTerminated:":{"name":"-showInstallingUpdateWithApplicationTerminated:","abstract":"

    Show the user that the update is installing

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateInstalledAndRelaunched:acknowledgement:":{"name":"-showUpdateInstalledAndRelaunched:acknowledgement:","abstract":"

    Show the user that the update installation finished

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateInFocus":{"name":"-showUpdateInFocus","abstract":"

    Show the user the current presented update or its progress in utmost focus

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)dismissUpdateInstallation":{"name":"-dismissUpdateInstallation","abstract":"

    Dismiss the current update installation

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateNotFoundWithAcknowledgement:":{"name":"-showUpdateNotFoundWithAcknowledgement:","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateInstallationDidFinishWithAcknowledgement:":{"name":"-showUpdateInstallationDidFinishWithAcknowledgement:","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)dismissUserInitiatedUpdateCheck":{"name":"-dismissUserInitiatedUpdateCheck","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showInstallingUpdate":{"name":"-showInstallingUpdate","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showSendingTerminationSignal":{"name":"-showSendingTerminationSignal","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:mayPerformUpdateCheck:error:":{"name":"-updater:mayPerformUpdateCheck:error:","abstract":"

    Returns whether to allow Sparkle to check for updates.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)allowedChannelsForUpdater:":{"name":"-allowedChannelsForUpdater:","abstract":"

    Returns the set of Sparkle channels the updater is allowed to find new updates from.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)feedURLStringForUpdater:":{"name":"-feedURLStringForUpdater:","abstract":"

    Returns a custom appcast URL used for checking for new updates.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)feedParametersForUpdater:sendingSystemProfile:":{"name":"-feedParametersForUpdater:sendingSystemProfile:","abstract":"

    Returns additional parameters to append to the appcast URL’s query string.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterShouldPromptForPermissionToCheckForUpdates:":{"name":"-updaterShouldPromptForPermissionToCheckForUpdates:","abstract":"

    Returns whether Sparkle should prompt the user about checking for new updates automatically.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)allowedSystemProfileKeysForUpdater:":{"name":"-allowedSystemProfileKeysForUpdater:","abstract":"

    Returns an allowed list of system profile keys to be appended to the appcast URL’s query string.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didFinishLoadingAppcast:":{"name":"-updater:didFinishLoadingAppcast:","abstract":"

    Called after Sparkle has downloaded the appcast from the remote server.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didFindValidUpdate:":{"name":"-updater:didFindValidUpdate:","abstract":"

    Called when a new valid update is found by the update driver.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterDidNotFindUpdate:error:":{"name":"-updaterDidNotFindUpdate:error:","abstract":"

    Called when a valid new update is not found.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterDidNotFindUpdate:":{"name":"-updaterDidNotFindUpdate:","abstract":"

    Called when a valid new update is not found.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)bestValidUpdateInAppcast:forUpdater:":{"name":"-bestValidUpdateInAppcast:forUpdater:","abstract":"

    Returns the item in the appcast corresponding to the update that should be installed.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:shouldProceedWithUpdate:updateCheck:error:":{"name":"-updater:shouldProceedWithUpdate:updateCheck:error:","abstract":"

    Returns whether or not the updater should proceed with the new chosen update from the appcast.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:userDidSkipThisVersion:":{"name":"-updater:userDidSkipThisVersion:","abstract":"

    Called when an update is skipped by the user.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:shouldDownloadReleaseNotesForUpdate:":{"name":"-updater:shouldDownloadReleaseNotesForUpdate:","abstract":"

    Returns whether the release notes (if available) should be downloaded after an update is found and shown.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willDownloadUpdate:withRequest:":{"name":"-updater:willDownloadUpdate:withRequest:","abstract":"

    Called immediately before downloading the specified update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didDownloadUpdate:":{"name":"-updater:didDownloadUpdate:","abstract":"

    Called immediately after succesfull download of the specified update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:failedToDownloadUpdate:error:":{"name":"-updater:failedToDownloadUpdate:error:","abstract":"

    Called after the specified update failed to download.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)userDidCancelDownload:":{"name":"-userDidCancelDownload:","abstract":"

    Called when the user cancels an update while it is being downloaded.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willExtractUpdate:":{"name":"-updater:willExtractUpdate:","abstract":"

    Called immediately before extracting the specified downloaded update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didExtractUpdate:":{"name":"-updater:didExtractUpdate:","abstract":"

    Called immediately after extracting the specified downloaded update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willInstallUpdate:":{"name":"-updater:willInstallUpdate:","abstract":"

    Called immediately before installing the specified update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:shouldPostponeRelaunchForUpdate:untilInvokingBlock:":{"name":"-updater:shouldPostponeRelaunchForUpdate:untilInvokingBlock:","abstract":"

    Returns whether the relaunch should be delayed in order to perform other tasks.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterShouldRelaunchApplication:":{"name":"-updaterShouldRelaunchApplication:","abstract":"

    Returns whether the application should be relaunched at all.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterWillRelaunchApplication:":{"name":"-updaterWillRelaunchApplication:","abstract":"

    Called immediately before relaunching.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)versionComparatorForUpdater:":{"name":"-versionComparatorForUpdater:","abstract":"

    Returns an object that compares version numbers to determine their arithmetic relation to each other.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willScheduleUpdateCheckAfterDelay:":{"name":"-updater:willScheduleUpdateCheckAfterDelay:","abstract":"

    Called when a background update will be scheduled after a delay.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterWillNotScheduleUpdateCheck:":{"name":"-updaterWillNotScheduleUpdateCheck:","abstract":"

    Called when no update checks will be scheduled in the future.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)decryptionPasswordForUpdater:":{"name":"-decryptionPasswordForUpdater:","abstract":"

    Returns the decryption password (if any) which is used to extract the update archive DMG.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willInstallUpdateOnQuit:immediateInstallationBlock:":{"name":"-updater:willInstallUpdateOnQuit:immediateInstallationBlock:","abstract":"

    Called when an update is scheduled to be silently installed on quit after downloading the update automatically.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didAbortWithError:":{"name":"-updater:didAbortWithError:","abstract":"

    Called after the update driver aborts due to an error.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didFinishUpdateCycleForUpdateCheck:error:":{"name":"-updater:didFinishUpdateCycleForUpdateCheck:error:","abstract":"

    Called after the update driver finishes.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterMayCheckForUpdates:":{"name":"-updaterMayCheckForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverWillShowModalAlert":{"name":"-standardUserDriverWillShowModalAlert","abstract":"

    Called before showing a modal alert window,","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverDidShowModalAlert":{"name":"-standardUserDriverDidShowModalAlert","abstract":"

    Called after showing a modal alert window,","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverRequestsVersionDisplayer":{"name":"-standardUserDriverRequestsVersionDisplayer","abstract":"

    Returns an object that formats version numbers for display to the user.","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverShowVersionHistoryForAppcastItem:":{"name":"-standardUserDriverShowVersionHistoryForAppcastItem:","abstract":"

    Handles showing the full release notes to the user.

    ","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html":{"name":"SPUStandardUserDriverDelegate","abstract":"

    A protocol for Sparkle’s standard user driver’s delegate

    "},"Protocols/SPUUpdaterDelegate.html":{"name":"SPUUpdaterDelegate","abstract":"

    Provides delegation methods to control the behavior of an SPUUpdater object.

    "},"Protocols/SPUUserDriver.html":{"name":"SPUUserDriver","abstract":"

    The API in Sparkle for controlling the user interaction.

    "},"Protocols/SUUpdaterDelegate.html":{"name":"SUUpdaterDelegate","abstract":"

    Undocumented

    "},"Protocols/SUVersionComparison.html":{"name":"SUVersionComparison","abstract":"

    Provides version comparison facilities for Sparkle.

    "},"Protocols/SUVersionDisplay.html":{"name":"SUVersionDisplay","abstract":"

    Applies special display formatting to version numbers.

    "},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonUnknown":{"name":"SPUNoUpdateFoundReasonUnknown","abstract":"

    A new update is unavailable for an unknown reason.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonOnLatestVersion":{"name":"SPUNoUpdateFoundReasonOnLatestVersion","abstract":"

    A new update is unavailable because the user is on the latest known version in the appcast feed.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonOnNewerThanLatestVersion":{"name":"SPUNoUpdateFoundReasonOnNewerThanLatestVersion","abstract":"

    A new update is unavailable because the user is on a version newer than the latest known version in the appcast feed.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonSystemIsTooOld":{"name":"SPUNoUpdateFoundReasonSystemIsTooOld","abstract":"

    A new update is unavailable because the user’s operating system version is too old for the update.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonSystemIsTooNew":{"name":"SPUNoUpdateFoundReasonSystemIsTooNew","abstract":"

    A new update is unavailable because the user’s operating system version is too new for the update.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SUError.html#/c:@E@SUError@SUNoPublicDSAFoundError":{"name":"SUNoPublicDSAFoundError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInsufficientSigningError":{"name":"SUInsufficientSigningError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInsecureFeedURLError":{"name":"SUInsecureFeedURLError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidFeedURLError":{"name":"SUInvalidFeedURLError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidUpdaterError":{"name":"SUInvalidUpdaterError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidHostBundleIdentifierError":{"name":"SUInvalidHostBundleIdentifierError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidHostVersionError":{"name":"SUInvalidHostVersionError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAppcastParseError":{"name":"SUAppcastParseError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUNoUpdateError":{"name":"SUNoUpdateError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAppcastError":{"name":"SUAppcastError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SURunningFromDiskImageError":{"name":"SURunningFromDiskImageError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUResumeAppcastError":{"name":"SUResumeAppcastError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SURunningTranslocated":{"name":"SURunningTranslocated","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUWebKitTerminationError":{"name":"SUWebKitTerminationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUTemporaryDirectoryError":{"name":"SUTemporaryDirectoryError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUDownloadError":{"name":"SUDownloadError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUUnarchivingError":{"name":"SUUnarchivingError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUSignatureError":{"name":"SUSignatureError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUValidationError":{"name":"SUValidationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUFileCopyFailure":{"name":"SUFileCopyFailure","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAuthenticationFailure":{"name":"SUAuthenticationFailure","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUMissingUpdateError":{"name":"SUMissingUpdateError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUMissingInstallerToolError":{"name":"SUMissingInstallerToolError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SURelaunchError":{"name":"SURelaunchError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationError":{"name":"SUInstallationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUDowngradeError":{"name":"SUDowngradeError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationCanceledError":{"name":"SUInstallationCanceledError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationAuthorizeLaterError":{"name":"SUInstallationAuthorizeLaterError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUNotValidUpdateError":{"name":"SUNotValidUpdateError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAgentInvalidationError":{"name":"SUAgentInvalidationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUIncorrectAPIUsageError":{"name":"SUIncorrectAPIUsageError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SPUUserUpdateStage.html#/c:@E@SPUUserUpdateStage@SPUUserUpdateStageNotDownloaded":{"name":"SPUUserUpdateStageNotDownloaded","abstract":"

    The update has not been downloaded.

    ","parent_name":"SPUUserUpdateStage"},"Enums/SPUUserUpdateStage.html#/c:@E@SPUUserUpdateStage@SPUUserUpdateStageDownloaded":{"name":"SPUUserUpdateStageDownloaded","abstract":"

    The update has already been downloaded but not begun installing.

    ","parent_name":"SPUUserUpdateStage"},"Enums/SPUUserUpdateStage.html#/c:@E@SPUUserUpdateStage@SPUUserUpdateStageInstalling":{"name":"SPUUserUpdateStageInstalling","abstract":"

    The update has already been downloaded and began installing in the background.

    ","parent_name":"SPUUserUpdateStage"},"Enums/SPUUserUpdateChoice.html#/c:@E@SPUUserUpdateChoice@SPUUserUpdateChoiceSkip":{"name":"SPUUserUpdateChoiceSkip","abstract":"

    Dismisses the update and skips being notified of it in the future.

    ","parent_name":"SPUUserUpdateChoice"},"Enums/SPUUserUpdateChoice.html#/c:@E@SPUUserUpdateChoice@SPUUserUpdateChoiceInstall":{"name":"SPUUserUpdateChoiceInstall","abstract":"

    Downloads (if needed) and installs the update.

    ","parent_name":"SPUUserUpdateChoice"},"Enums/SPUUserUpdateChoice.html#/c:@E@SPUUserUpdateChoice@SPUUserUpdateChoiceDismiss":{"name":"SPUUserUpdateChoiceDismiss","abstract":"

    Dismisses the update until Sparkle reminds the user of it at a later time.

    ","parent_name":"SPUUserUpdateChoice"},"Enums/SPUUpdateCheck.html#/c:@E@SPUUpdateCheck@SPUUpdateCheckUpdates":{"name":"SPUUpdateCheckUpdates","abstract":"

    The user-initiated update check corresponding to -[SPUUpdater checkForUpdates].

    ","parent_name":"SPUUpdateCheck"},"Enums/SPUUpdateCheck.html#/c:@E@SPUUpdateCheck@SPUUpdateCheckUpdatesInBackground":{"name":"SPUUpdateCheckUpdatesInBackground","abstract":"

    The background scheduled update check corresponding to -[SPUUpdater checkForUpdatesInBackground].

    ","parent_name":"SPUUpdateCheck"},"Enums/SPUUpdateCheck.html#/c:@E@SPUUpdateCheck@SPUUpdateCheckUpdateInformation":{"name":"SPUUpdateCheckUpdateInformation","abstract":"

    The informational probe update check corresponding to -[SPUUpdater checkForUpdateInformation].

    ","parent_name":"SPUUpdateCheck"},"Enums/SPUUpdateCheck.html":{"name":"SPUUpdateCheck","abstract":"

    Describes the type of update check being performed.

    "},"Enums/SPUUserUpdateChoice.html":{"name":"SPUUserUpdateChoice","abstract":"

    A choice made by the user when prompted with a new update.

    "},"Enums/SPUUserUpdateStage.html":{"name":"SPUUserUpdateStage","abstract":"

    Describes the current stage an update is undergoing.

    "},"Enums/SUError.html":{"name":"SUError","abstract":"

    Undocumented

    "},"Enums/SPUNoUpdateFoundReason.html":{"name":"SPUNoUpdateFoundReason","abstract":"

    The reason why a new update is not available.

    "},"Constants.html#/c:@SUUpdaterDidFinishLoadingAppCastNotification":{"name":"SUUpdaterDidFinishLoadingAppCastNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterDidFindValidUpdateNotification":{"name":"SUUpdaterDidFindValidUpdateNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterDidNotFindUpdateNotification":{"name":"SUUpdaterDidNotFindUpdateNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterWillRestartNotification":{"name":"SUUpdaterWillRestartNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterAppcastItemNotificationKey":{"name":"SUUpdaterAppcastItemNotificationKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterAppcastNotificationKey":{"name":"SUUpdaterAppcastNotificationKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerApplicationNameKey":{"name":"SUSystemProfilerApplicationNameKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerApplicationVersionKey":{"name":"SUSystemProfilerApplicationVersionKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPU64bitKey":{"name":"SUSystemProfilerCPU64bitKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUCountKey":{"name":"SUSystemProfilerCPUCountKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUFrequencyKey":{"name":"SUSystemProfilerCPUFrequencyKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUTypeKey":{"name":"SUSystemProfilerCPUTypeKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUSubtypeKey":{"name":"SUSystemProfilerCPUSubtypeKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerHardwareModelKey":{"name":"SUSystemProfilerHardwareModelKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerMemoryKey":{"name":"SUSystemProfilerMemoryKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerOperatingSystemVersionKey":{"name":"SUSystemProfilerOperatingSystemVersionKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerPreferredLanguageKey":{"name":"SUSystemProfilerPreferredLanguageKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSparkleErrorDomain":{"name":"SUSparkleErrorDomain","abstract":"

    Error domain used by Sparkle

    "},"Constants.html#/c:@SPUNoUpdateFoundReasonKey":{"name":"SPUNoUpdateFoundReasonKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SPULatestAppcastItemFoundKey":{"name":"SPULatestAppcastItemFoundKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SPUNoUpdateFoundUserInitiatedKey":{"name":"SPUNoUpdateFoundUserInitiatedKey","abstract":"

    Undocumented

    "},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)delegate":{"name":"delegate","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(cm)sharedUpdater":{"name":"+sharedUpdater","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(cm)updaterForBundle:":{"name":"+updaterForBundle:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)initForBundle:":{"name":"-initForBundle:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)checkForUpdates:":{"name":"-checkForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)validateMenuItem:":{"name":"-validateMenuItem:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)checkForUpdatesInBackground":{"name":"-checkForUpdatesInBackground","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)automaticallyChecksForUpdates":{"name":"automaticallyChecksForUpdates","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)automaticallyDownloadsUpdates":{"name":"automaticallyDownloadsUpdates","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)updateCheckInterval":{"name":"updateCheckInterval","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)checkForUpdateInformation":{"name":"-checkForUpdateInformation","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)feedURL":{"name":"feedURL","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)hostBundle":{"name":"hostBundle","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)sparkleBundle":{"name":"sparkleBundle","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)userAgentString":{"name":"userAgentString","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)httpHeaders":{"name":"httpHeaders","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)sendsSystemProfile":{"name":"sendsSystemProfile","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)decryptionPassword":{"name":"decryptionPassword","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)lastUpdateCheckDate":{"name":"lastUpdateCheckDate","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)resetUpdateCycle":{"name":"-resetUpdateCycle","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)updateInProgress":{"name":"updateInProgress","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(im)initWithAutomaticUpdateChecks:sendSystemProfile:":{"name":"-initWithAutomaticUpdateChecks:sendSystemProfile:","abstract":"

    Initializes a new update permission response instance.

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(py)automaticUpdateChecks":{"name":"automaticUpdateChecks","abstract":"

    A read-only property indicating whether automatic update checks are allowed or not.

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(py)sendSystemProfile":{"name":"sendSystemProfile","abstract":"

    A read-only property indicating if system profile should be sent or not.

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUStandardVersionComparator.html#/c:objc(cs)SUStandardVersionComparator(im)init":{"name":"-init","abstract":"

    Initializes a new instance of the standard version comparator.

    ","parent_name":"SUStandardVersionComparator"},"Classes/SUStandardVersionComparator.html#/c:objc(cs)SUStandardVersionComparator(cpy)defaultComparator":{"name":"defaultComparator","abstract":"

    A singleton instance of the comparator.

    ","parent_name":"SUStandardVersionComparator"},"Classes/SUStandardVersionComparator.html#/c:objc(cs)SUStandardVersionComparator(im)compareVersion:toVersion:":{"name":"-compareVersion:toVersion:","abstract":"

    Compares two version strings through textual analysis.

    ","parent_name":"SUStandardVersionComparator"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)versionString":{"name":"versionString","abstract":"

    The version of the update item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)displayVersionString":{"name":"displayVersionString","abstract":"

    The human-readable display version of the update item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)fileURL":{"name":"fileURL","abstract":"

    The file URL to the update item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)contentLength":{"name":"contentLength","abstract":"

    The content length of the download in bytes.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)infoURL":{"name":"infoURL","abstract":"

    The info URL to the update item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)informationOnlyUpdate":{"name":"informationOnlyUpdate","abstract":"

    Indicates whether or not the update item is only informational and has no download.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)title":{"name":"title","abstract":"

    The title of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)dateString":{"name":"dateString","abstract":"

    The date string of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)date":{"name":"date","abstract":"

    The date constructed from the dateString property if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)releaseNotesURL":{"name":"releaseNotesURL","abstract":"

    The release notes URL of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)itemDescription":{"name":"itemDescription","abstract":"

    The description of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)fullReleaseNotesURL":{"name":"fullReleaseNotesURL","abstract":"

    The full release notes URL of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)minimumSystemVersion":{"name":"minimumSystemVersion","abstract":"

    The required minimum system operating version string for this update if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)minimumOperatingSystemVersionIsOK":{"name":"minimumOperatingSystemVersionIsOK","abstract":"

    Indicates whether or not the current running system passes the minimumSystemVersion requirement.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)maximumSystemVersion":{"name":"maximumSystemVersion","abstract":"

    The required maximum system operating version string for this update if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)maximumOperatingSystemVersionIsOK":{"name":"maximumOperatingSystemVersionIsOK","abstract":"

    Indicates whether or not the current running system passes the maximumSystemVersion requirement.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)channel":{"name":"channel","abstract":"

    The channel the update item is on if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)installationType":{"name":"installationType","abstract":"

    The installation type of the update at fileURL

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)phasedRolloutInterval":{"name":"phasedRolloutInterval","abstract":"

    The phased rollout interval of the update item in seconds if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)minimumAutoupdateVersion":{"name":"minimumAutoupdateVersion","abstract":"

    The minimum bundle version string this update requires for automatically downloading and installing updates if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)majorUpgrade":{"name":"majorUpgrade","abstract":"

    Indicates whether or not the update item is a major upgrade.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)ignoreSkippedUpgradesBelowVersion":{"name":"ignoreSkippedUpgradesBelowVersion","abstract":"

    Previously skipped upgrades by the user will be ignored if they skipped an update whose version precedes this version.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)criticalUpdate":{"name":"criticalUpdate","abstract":"

    Indicates whether or not the update item is critical.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)osString":{"name":"osString","abstract":"

    Specifies the operating system the download update is available for if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)macOsUpdate":{"name":"macOsUpdate","abstract":"

    Indicates whether or not this update item is for macOS.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)deltaUpdates":{"name":"deltaUpdates","abstract":"

    The delta updates for this update item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)deltaUpdate":{"name":"deltaUpdate","abstract":"

    Indicates whether or not the update item is a delta update.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)propertiesDictionary":{"name":"propertiesDictionary","abstract":"

    The dictionary representing the entire appcast item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(cm)emptyAppcastItem":{"name":"+emptyAppcastItem","abstract":"

    An empty appcast item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)initWithDictionary:failureReason:":{"name":"-initWithDictionary:failureReason:","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)initWithDictionary:relativeToURL:failureReason:":{"name":"-initWithDictionary:relativeToURL:failureReason:","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcast.html#/c:objc(cs)SUAppcast(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SUAppcast"},"Classes/SUAppcast.html#/c:objc(cs)SUAppcast(py)items":{"name":"items","abstract":"

    The collection of update items.

    ","parent_name":"SUAppcast"},"Classes/SPUUserUpdateState.html#/c:objc(cs)SPUUserUpdateState(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SPUUserUpdateState"},"Classes/SPUUserUpdateState.html#/c:objc(cs)SPUUserUpdateState(py)stage":{"name":"stage","abstract":"

    The current update stage.

    ","parent_name":"SPUUserUpdateState"},"Classes/SPUUserUpdateState.html#/c:objc(cs)SPUUserUpdateState(py)userInitiated":{"name":"userInitiated","abstract":"

    Indicates whether or not the update check was initiated by the user.

    ","parent_name":"SPUUserUpdateState"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(im)initWithHostBundle:":{"name":"-initWithHostBundle:","abstract":"

    Undocumented

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)automaticallyChecksForUpdates":{"name":"automaticallyChecksForUpdates","abstract":"

    Indicates whether or not automatic update checks are enabled.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)updateCheckInterval":{"name":"updateCheckInterval","abstract":"

    The regular update check interval.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)allowsAutomaticUpdates":{"name":"allowsAutomaticUpdates","abstract":"

    Indicates whether or not automatically downloading updates is allowed to be turned on by the user.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)automaticallyDownloadsUpdates":{"name":"automaticallyDownloadsUpdates","abstract":"

    Indicates whether or not automatically downloading updates is enabled by the user or developer.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)sendsSystemProfile":{"name":"sendsSystemProfile","abstract":"

    Indicates whether or not anonymous system profile information is sent when checking for updates.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)initWithHostBundle:applicationBundle:userDriver:delegate:":{"name":"-initWithHostBundle:applicationBundle:userDriver:delegate:","abstract":"

    Initializes a new SPUUpdater instance

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)init":{"name":"-init","abstract":"

    Use -initWithHostBundle:applicationBundle:userDriver:delegate: or SPUStandardUpdaterController standard adapter instead.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)startUpdater:":{"name":"-startUpdater:","abstract":"

    Starts the updater.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)checkForUpdates":{"name":"-checkForUpdates","abstract":"

    Checks for updates, and displays progress while doing so if needed.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)checkForUpdatesInBackground":{"name":"-checkForUpdatesInBackground","abstract":"

    Checks for updates, but does not display any UI unless an update is found.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)checkForUpdateInformation":{"name":"-checkForUpdateInformation","abstract":"

    Begins a “probing” check for updates which will not actually offer to","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)canCheckForUpdates":{"name":"canCheckForUpdates","abstract":"

    A property indicating whether or not updates can be checked by the user.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)sessionInProgress":{"name":"sessionInProgress","abstract":"

    A property indicating whether or not an update session is in progress.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)automaticallyChecksForUpdates":{"name":"automaticallyChecksForUpdates","abstract":"

    A property indicating whether or not to check for updates automatically.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)updateCheckInterval":{"name":"updateCheckInterval","abstract":"

    A property indicating the current automatic update check interval in seconds.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)automaticallyDownloadsUpdates":{"name":"automaticallyDownloadsUpdates","abstract":"

    A property indicating whether or not updates can be automatically downloaded in the background.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)feedURL":{"name":"feedURL","abstract":"

    The URL of the appcast used to download update information.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)hostBundle":{"name":"hostBundle","abstract":"

    The host bundle that is being updated.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)userAgentString":{"name":"userAgentString","abstract":"

    The user agent used when checking for updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)httpHeaders":{"name":"httpHeaders","abstract":"

    The HTTP headers used when checking for updates, downloading release notes, and downloading updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)sendsSystemProfile":{"name":"sendsSystemProfile","abstract":"

    A property indicating whether or not the user’s system profile information is sent when checking for updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)lastUpdateCheckDate":{"name":"lastUpdateCheckDate","abstract":"

    The date of the last update check or nil if no check has been performed yet.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)resetUpdateCycle":{"name":"-resetUpdateCycle","abstract":"

    Appropriately schedules or cancels the update checking timer according to the preferences for time interval and automatic checks.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)systemProfileArray":{"name":"systemProfileArray","abstract":"

    The system profile information that is sent when checking for updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdatePermissionRequest.html#/c:objc(cs)SPUUpdatePermissionRequest(im)initWithSystemProfile:":{"name":"-initWithSystemProfile:","abstract":"

    Initializes a new update permission request instance.

    ","parent_name":"SPUUpdatePermissionRequest"},"Classes/SPUUpdatePermissionRequest.html#/c:objc(cs)SPUUpdatePermissionRequest(py)systemProfile":{"name":"systemProfile","abstract":"

    A read-only property for the user’s system profile.

    ","parent_name":"SPUUpdatePermissionRequest"},"Classes/SPUStandardUserDriver.html#/c:objc(cs)SPUStandardUserDriver(im)initWithHostBundle:delegate:":{"name":"-initWithHostBundle:delegate:","abstract":"

    Initializes a Sparkle’s standard user driver for user update interactions

    ","parent_name":"SPUStandardUserDriver"},"Classes/SPUStandardUserDriver.html#/c:objc(cs)SPUStandardUserDriver(im)init":{"name":"-init","abstract":"

    Use initWithHostBundle:delegate: instead.

    ","parent_name":"SPUStandardUserDriver"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController@updaterDelegate":{"name":"updaterDelegate","abstract":"

    Interface builder outlet for the updater’s delegate.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController@userDriverDelegate":{"name":"userDriverDelegate","abstract":"

    Interface builder outlet for the user driver’s delegate.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(py)updater":{"name":"updater","abstract":"

    Accessible property for the updater. Some properties on the updater can be binded via KVO

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(py)userDriver":{"name":"userDriver","abstract":"

    Accessible property for the updater’s user driver.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)init":{"name":"-init","abstract":"

    Create a new SPUStandardUpdaterController from a nib.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)initWithUpdaterDelegate:userDriverDelegate:":{"name":"-initWithUpdaterDelegate:userDriverDelegate:","abstract":"

    Create a new SPUStandardUpdaterController programmatically.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)initWithStartingUpdater:updaterDelegate:userDriverDelegate:":{"name":"-initWithStartingUpdater:updaterDelegate:userDriverDelegate:","abstract":"

    Create a new SPUStandardUpdaterController programmatically allowing you to specify whether or not to start the updater immediately.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)startUpdater":{"name":"-startUpdater","abstract":"

    Starts the updater if it has not already been started.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)checkForUpdates:":{"name":"-checkForUpdates:","abstract":"

    Explicitly checks for updates and displays a progress dialog while doing so.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)data":{"name":"data","abstract":"

    The raw data that was downloaded.

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)URL":{"name":"URL","abstract":"

    The URL that was fetched from.

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)textEncodingName":{"name":"textEncodingName","abstract":"

    The IANA charset encoding name if available. Eg: “utf-8”

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)MIMEType":{"name":"MIMEType","abstract":"

    The MIME type if available. Eg: “text/plain”

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html":{"name":"SPUDownloadData","abstract":"

    A class for containing downloaded data along with some information about it.

    "},"Classes/SPUStandardUpdaterController.html":{"name":"SPUStandardUpdaterController","abstract":"

    A controller class that instantiates a SPUUpdater and allows binding UI to its updater settings.

    "},"Classes/SPUStandardUserDriver.html":{"name":"SPUStandardUserDriver","abstract":"

    Sparkle’s standard built-in user driver for updater interactions

    "},"Classes/SPUUpdatePermissionRequest.html":{"name":"SPUUpdatePermissionRequest","abstract":"

    This class represents information needed to make a permission request for checking updates.

    "},"Classes/SPUUpdater.html":{"name":"SPUUpdater","abstract":"

    The main API in Sparkle for controlling the update mechanism.

    "},"Classes/SPUUpdaterSettings.html":{"name":"SPUUpdaterSettings","abstract":"

    This class can be used for reading certain updater settings.

    "},"Classes/SPUUserUpdateState.html":{"name":"SPUUserUpdateState","abstract":"

    This represents the user’s current update state.

    "},"Classes/SUAppcast.html":{"name":"SUAppcast","abstract":"

    The appcast representing a collection of SUAppcastItem items in the feed.

    "},"Classes/SUAppcastItem.html":{"name":"SUAppcastItem","abstract":"

    The appcast item describing an update in the application’s appcast feed.

    "},"Classes/SUStandardVersionComparator.html":{"name":"SUStandardVersionComparator","abstract":"

    Sparkle’s default version comparator.

    "},"Classes/SUUpdatePermissionResponse.html":{"name":"SUUpdatePermissionResponse","abstract":"

    This class represents a response for permission to check updates.

    "},"Classes/SUUpdater.html":{"name":"SUUpdater","abstract":"

    The legacy API in Sparkle for controlling the update mechanism.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Constants.html":{"name":"Constants","abstract":"

    The following constants are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "}} \ No newline at end of file diff --git a/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/docSet.dsidx b/documentation/api-reference/docsets/Sparkle.docset/Contents/Resources/docSet.dsidx index eff3b95a418f39d74485bcb503e68a7cd7fc384f..6a2cb08738ab63251915eb3e07550b90699b6f63 100644 GIT binary patch delta 7713 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

    v)4Ls&AUd>+VDgBmzZkGliZ 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̐}F7oU^@&D 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%0Db58&`8U@NhXXf*j|amsKCc(^`vN6qZR{!X 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�rtY3FIYPyXZR~Q2Z

    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 N&ZZhpK(T&;@_+h=^Va|X diff --git a/documentation/api-reference/index.html b/documentation/api-reference/index.html index 73e373b..b2e6ad9 100644 --- a/documentation/api-reference/index.html +++ b/documentation/api-reference/index.html @@ -15,7 +15,7 @@

    - Sparkle 2.0.0 Docs + Sparkle 2.1.0 Docs (58% documented)

    @@ -218,7 +218,7 @@
    diff --git a/documentation/api-reference/search.json b/documentation/api-reference/search.json index cc0d3f7..97f4792 100644 --- a/documentation/api-reference/search.json +++ b/documentation/api-reference/search.json @@ -1 +1 @@ -{"Protocols/SUVersionDisplay.html#/c:objc(pl)SUVersionDisplay(im)formatVersion:andVersion:":{"name":"-formatVersion:andVersion:","abstract":"

    Formats two version strings.

    ","parent_name":"SUVersionDisplay"},"Protocols/SUVersionComparison.html#/c:objc(pl)SUVersionComparison(im)compareVersion:toVersion:":{"name":"-compareVersion:toVersion:","abstract":"

    An abstract method to compare two version strings.

    ","parent_name":"SUVersionComparison"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterMayCheckForUpdates:":{"name":"-updaterMayCheckForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)feedParametersForUpdater:sendingSystemProfile:":{"name":"-feedParametersForUpdater:sendingSystemProfile:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)feedURLStringForUpdater:":{"name":"-feedURLStringForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterShouldPromptForPermissionToCheckForUpdates:":{"name":"-updaterShouldPromptForPermissionToCheckForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didFinishLoadingAppcast:":{"name":"-updater:didFinishLoadingAppcast:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)bestValidUpdateInAppcast:forUpdater:":{"name":"-bestValidUpdateInAppcast:forUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didFindValidUpdate:":{"name":"-updater:didFindValidUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterDidNotFindUpdate:":{"name":"-updaterDidNotFindUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willDownloadUpdate:withRequest:":{"name":"-updater:willDownloadUpdate:withRequest:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didDownloadUpdate:":{"name":"-updater:didDownloadUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:failedToDownloadUpdate:error:":{"name":"-updater:failedToDownloadUpdate:error:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)userDidCancelDownload:":{"name":"-userDidCancelDownload:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willExtractUpdate:":{"name":"-updater:willExtractUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didExtractUpdate:":{"name":"-updater:didExtractUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willInstallUpdate:":{"name":"-updater:willInstallUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:userDidSkipThisVersion:":{"name":"-updater:userDidSkipThisVersion:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:shouldPostponeRelaunchForUpdate:untilInvoking:":{"name":"-updater:shouldPostponeRelaunchForUpdate:untilInvoking:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:shouldPostponeRelaunchForUpdate:":{"name":"-updater:shouldPostponeRelaunchForUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterShouldRelaunchApplication:":{"name":"-updaterShouldRelaunchApplication:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterWillRelaunchApplication:":{"name":"-updaterWillRelaunchApplication:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterDidRelaunchApplication:":{"name":"-updaterDidRelaunchApplication:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)versionComparatorForUpdater:":{"name":"-versionComparatorForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)versionDisplayerForUpdater:":{"name":"-versionDisplayerForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)pathToRelaunchForUpdater:":{"name":"-pathToRelaunchForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterWillShowModalAlert:":{"name":"-updaterWillShowModalAlert:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterDidShowModalAlert:":{"name":"-updaterDidShowModalAlert:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willInstallUpdateOnQuit:immediateInstallationInvocation:":{"name":"-updater:willInstallUpdateOnQuit:immediateInstallationInvocation:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willInstallUpdateOnQuit:immediateInstallationBlock:":{"name":"-updater:willInstallUpdateOnQuit:immediateInstallationBlock:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didCancelInstallUpdateOnQuit:":{"name":"-updater:didCancelInstallUpdateOnQuit:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didAbortWithError:":{"name":"-updater:didAbortWithError:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdatePermissionRequest:reply:":{"name":"-showUpdatePermissionRequest:reply:","abstract":"

    Show an updater permission request to the user

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUserInitiatedUpdateCheckWithCancellation:":{"name":"-showUserInitiatedUpdateCheckWithCancellation:","abstract":"

    Show the user initating an update check

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateFoundWithAppcastItem:state:reply:":{"name":"-showUpdateFoundWithAppcastItem:state:reply:","abstract":"

    Show the user a new update is found.

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateReleaseNotesWithDownloadData:":{"name":"-showUpdateReleaseNotesWithDownloadData:","abstract":"

    Show the user the release notes for the new update

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateReleaseNotesFailedToDownloadWithError:":{"name":"-showUpdateReleaseNotesFailedToDownloadWithError:","abstract":"

    Show the user that the new update’s release notes could not be downloaded

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateNotFoundWithError:acknowledgement:":{"name":"-showUpdateNotFoundWithError:acknowledgement:","abstract":"

    Show the user a new update was not found

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdaterError:acknowledgement:":{"name":"-showUpdaterError:acknowledgement:","abstract":"

    Show the user an update error occurred

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadInitiatedWithCancellation:":{"name":"-showDownloadInitiatedWithCancellation:","abstract":"

    Show the user that downloading the new update initiated

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadDidReceiveExpectedContentLength:":{"name":"-showDownloadDidReceiveExpectedContentLength:","abstract":"

    Show the user the content length of the new update that will be downloaded

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadDidReceiveDataOfLength:":{"name":"-showDownloadDidReceiveDataOfLength:","abstract":"

    Show the user that the update download received more data

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadDidStartExtractingUpdate":{"name":"-showDownloadDidStartExtractingUpdate","abstract":"

    Show the user that the update finished downloading and started extracting

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showExtractionReceivedProgress:":{"name":"-showExtractionReceivedProgress:","abstract":"

    Show the user that the update is extracting with progress

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showInstallingUpdate":{"name":"-showInstallingUpdate","abstract":"

    Show the user that the update is installing

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showReadyToInstallAndRelaunch:":{"name":"-showReadyToInstallAndRelaunch:","abstract":"

    Show the user that the update is ready to install & relaunch

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showSendingTerminationSignal":{"name":"-showSendingTerminationSignal","abstract":"

    Show or dismiss progress while a termination signal is being sent to the application from Sparkle’s installer

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateInstalledAndRelaunched:acknowledgement:":{"name":"-showUpdateInstalledAndRelaunched:acknowledgement:","abstract":"

    Show the user that the update installation finished

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateInFocus":{"name":"-showUpdateInFocus","abstract":"

    Show the user the current presented update or its progress in utmost focus

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)dismissUpdateInstallation":{"name":"-dismissUpdateInstallation","abstract":"

    Dismiss the current update installation

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateNotFoundWithAcknowledgement:":{"name":"-showUpdateNotFoundWithAcknowledgement:","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateInstallationDidFinishWithAcknowledgement:":{"name":"-showUpdateInstallationDidFinishWithAcknowledgement:","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)dismissUserInitiatedUpdateCheck":{"name":"-dismissUserInitiatedUpdateCheck","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:mayPerformUpdateCheck:error:":{"name":"-updater:mayPerformUpdateCheck:error:","abstract":"

    Returns whether to allow Sparkle to check for updates.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)allowedChannelsForUpdater:":{"name":"-allowedChannelsForUpdater:","abstract":"

    Returns the set of Sparkle channels the updater is allowed to find new updates from.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)feedURLStringForUpdater:":{"name":"-feedURLStringForUpdater:","abstract":"

    Returns a custom appcast URL used for checking for new updates.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)feedParametersForUpdater:sendingSystemProfile:":{"name":"-feedParametersForUpdater:sendingSystemProfile:","abstract":"

    Returns additional parameters to append to the appcast URL’s query string.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterShouldPromptForPermissionToCheckForUpdates:":{"name":"-updaterShouldPromptForPermissionToCheckForUpdates:","abstract":"

    Returns whether Sparkle should prompt the user about checking for new updates automatically.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)allowedSystemProfileKeysForUpdater:":{"name":"-allowedSystemProfileKeysForUpdater:","abstract":"

    Returns an allowed list of system profile keys to be appended to the appcast URL’s query string.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didFinishLoadingAppcast:":{"name":"-updater:didFinishLoadingAppcast:","abstract":"

    Called after Sparkle has downloaded the appcast from the remote server.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didFindValidUpdate:":{"name":"-updater:didFindValidUpdate:","abstract":"

    Called when a new valid update is found by the update driver.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterDidNotFindUpdate:error:":{"name":"-updaterDidNotFindUpdate:error:","abstract":"

    Called when a valid new update is not found.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterDidNotFindUpdate:":{"name":"-updaterDidNotFindUpdate:","abstract":"

    Called when a valid new update is not found.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)bestValidUpdateInAppcast:forUpdater:":{"name":"-bestValidUpdateInAppcast:forUpdater:","abstract":"

    Returns the item in the appcast corresponding to the update that should be installed.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:shouldProceedWithUpdate:updateCheck:error:":{"name":"-updater:shouldProceedWithUpdate:updateCheck:error:","abstract":"

    Returns whether or not the updater should proceed with the new chosen update from the appcast.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:userDidSkipThisVersion:":{"name":"-updater:userDidSkipThisVersion:","abstract":"

    Called when an update is skipped by the user.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:shouldDownloadReleaseNotesForUpdate:":{"name":"-updater:shouldDownloadReleaseNotesForUpdate:","abstract":"

    Returns whether the release notes (if available) should be downloaded after an update is found and shown.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willDownloadUpdate:withRequest:":{"name":"-updater:willDownloadUpdate:withRequest:","abstract":"

    Called immediately before downloading the specified update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didDownloadUpdate:":{"name":"-updater:didDownloadUpdate:","abstract":"

    Called immediately after succesfull download of the specified update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:failedToDownloadUpdate:error:":{"name":"-updater:failedToDownloadUpdate:error:","abstract":"

    Called after the specified update failed to download.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)userDidCancelDownload:":{"name":"-userDidCancelDownload:","abstract":"

    Called when the user cancels an update while it is being downloaded.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willExtractUpdate:":{"name":"-updater:willExtractUpdate:","abstract":"

    Called immediately before extracting the specified downloaded update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didExtractUpdate:":{"name":"-updater:didExtractUpdate:","abstract":"

    Called immediately after extracting the specified downloaded update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willInstallUpdate:":{"name":"-updater:willInstallUpdate:","abstract":"

    Called immediately before installing the specified update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:shouldPostponeRelaunchForUpdate:untilInvokingBlock:":{"name":"-updater:shouldPostponeRelaunchForUpdate:untilInvokingBlock:","abstract":"

    Returns whether the relaunch should be delayed in order to perform other tasks.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterShouldRelaunchApplication:":{"name":"-updaterShouldRelaunchApplication:","abstract":"

    Returns whether the application should be relaunched at all.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterWillRelaunchApplication:":{"name":"-updaterWillRelaunchApplication:","abstract":"

    Called immediately before relaunching.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)versionComparatorForUpdater:":{"name":"-versionComparatorForUpdater:","abstract":"

    Returns an object that compares version numbers to determine their arithmetic relation to each other.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willScheduleUpdateCheckAfterDelay:":{"name":"-updater:willScheduleUpdateCheckAfterDelay:","abstract":"

    Called when a background update will be scheduled after a delay.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterWillNotScheduleUpdateCheck:":{"name":"-updaterWillNotScheduleUpdateCheck:","abstract":"

    Called when no update checks will be scheduled in the future.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)decryptionPasswordForUpdater:":{"name":"-decryptionPasswordForUpdater:","abstract":"

    Returns the decryption password (if any) which is used to extract the update archive DMG.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willInstallUpdateOnQuit:immediateInstallationBlock:":{"name":"-updater:willInstallUpdateOnQuit:immediateInstallationBlock:","abstract":"

    Called when an update is scheduled to be silently installed on quit after downloading the update automatically.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didAbortWithError:":{"name":"-updater:didAbortWithError:","abstract":"

    Called after the update driver aborts due to an error.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didFinishUpdateCycleForUpdateCheck:error:":{"name":"-updater:didFinishUpdateCycleForUpdateCheck:error:","abstract":"

    Called after the update driver finishes.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterMayCheckForUpdates:":{"name":"-updaterMayCheckForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverWillShowModalAlert":{"name":"-standardUserDriverWillShowModalAlert","abstract":"

    Called before showing a modal alert window,","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverDidShowModalAlert":{"name":"-standardUserDriverDidShowModalAlert","abstract":"

    Called after showing a modal alert window,","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverRequestsVersionDisplayer":{"name":"-standardUserDriverRequestsVersionDisplayer","abstract":"

    Returns an object that formats version numbers for display to the user.","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverShowVersionHistoryForAppcastItem:":{"name":"-standardUserDriverShowVersionHistoryForAppcastItem:","abstract":"

    Handles showing the full release notes to the user.

    ","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html":{"name":"SPUStandardUserDriverDelegate","abstract":"

    A protocol for Sparkle’s standard user driver’s delegate

    "},"Protocols/SPUUpdaterDelegate.html":{"name":"SPUUpdaterDelegate","abstract":"

    Provides delegation methods to control the behavior of an SPUUpdater object.

    "},"Protocols/SPUUserDriver.html":{"name":"SPUUserDriver","abstract":"

    The API in Sparkle for controlling the user interaction.

    "},"Protocols/SUUpdaterDelegate.html":{"name":"SUUpdaterDelegate","abstract":"

    Undocumented

    "},"Protocols/SUVersionComparison.html":{"name":"SUVersionComparison","abstract":"

    Provides version comparison facilities for Sparkle.

    "},"Protocols/SUVersionDisplay.html":{"name":"SUVersionDisplay","abstract":"

    Applies special display formatting to version numbers.

    "},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonUnknown":{"name":"SPUNoUpdateFoundReasonUnknown","abstract":"

    A new update is unavailable for an unknown reason.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonOnLatestVersion":{"name":"SPUNoUpdateFoundReasonOnLatestVersion","abstract":"

    A new update is unavailable because the user is on the latest known version in the appcast feed.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonOnNewerThanLatestVersion":{"name":"SPUNoUpdateFoundReasonOnNewerThanLatestVersion","abstract":"

    A new update is unavailable because the user is on a version newer than the latest known version in the appcast feed.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonSystemIsTooOld":{"name":"SPUNoUpdateFoundReasonSystemIsTooOld","abstract":"

    A new update is unavailable because the user’s operating system version is too old for the update.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonSystemIsTooNew":{"name":"SPUNoUpdateFoundReasonSystemIsTooNew","abstract":"

    A new update is unavailable because the user’s operating system version is too new for the update.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SUError.html#/c:@E@SUError@SUNoPublicDSAFoundError":{"name":"SUNoPublicDSAFoundError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInsufficientSigningError":{"name":"SUInsufficientSigningError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInsecureFeedURLError":{"name":"SUInsecureFeedURLError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidFeedURLError":{"name":"SUInvalidFeedURLError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidUpdaterError":{"name":"SUInvalidUpdaterError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidHostBundleIdentifierError":{"name":"SUInvalidHostBundleIdentifierError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidHostVersionError":{"name":"SUInvalidHostVersionError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAppcastParseError":{"name":"SUAppcastParseError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUNoUpdateError":{"name":"SUNoUpdateError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAppcastError":{"name":"SUAppcastError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SURunningFromDiskImageError":{"name":"SURunningFromDiskImageError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUResumeAppcastError":{"name":"SUResumeAppcastError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SURunningTranslocated":{"name":"SURunningTranslocated","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUWebKitTerminationError":{"name":"SUWebKitTerminationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUTemporaryDirectoryError":{"name":"SUTemporaryDirectoryError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUDownloadError":{"name":"SUDownloadError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUUnarchivingError":{"name":"SUUnarchivingError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUSignatureError":{"name":"SUSignatureError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUValidationError":{"name":"SUValidationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUFileCopyFailure":{"name":"SUFileCopyFailure","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAuthenticationFailure":{"name":"SUAuthenticationFailure","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUMissingUpdateError":{"name":"SUMissingUpdateError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUMissingInstallerToolError":{"name":"SUMissingInstallerToolError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SURelaunchError":{"name":"SURelaunchError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationError":{"name":"SUInstallationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUDowngradeError":{"name":"SUDowngradeError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationCanceledError":{"name":"SUInstallationCanceledError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationAuthorizeLaterError":{"name":"SUInstallationAuthorizeLaterError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUNotValidUpdateError":{"name":"SUNotValidUpdateError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAgentInvalidationError":{"name":"SUAgentInvalidationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUIncorrectAPIUsageError":{"name":"SUIncorrectAPIUsageError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SPUUserUpdateStage.html#/c:@E@SPUUserUpdateStage@SPUUserUpdateStageNotDownloaded":{"name":"SPUUserUpdateStageNotDownloaded","abstract":"

    The update has not been downloaded.

    ","parent_name":"SPUUserUpdateStage"},"Enums/SPUUserUpdateStage.html#/c:@E@SPUUserUpdateStage@SPUUserUpdateStageDownloaded":{"name":"SPUUserUpdateStageDownloaded","abstract":"

    The update has already been downloaded but not begun installing.

    ","parent_name":"SPUUserUpdateStage"},"Enums/SPUUserUpdateStage.html#/c:@E@SPUUserUpdateStage@SPUUserUpdateStageInstalling":{"name":"SPUUserUpdateStageInstalling","abstract":"

    The update has already been downloaded and began installing in the background.

    ","parent_name":"SPUUserUpdateStage"},"Enums/SPUUserUpdateChoice.html#/c:@E@SPUUserUpdateChoice@SPUUserUpdateChoiceSkip":{"name":"SPUUserUpdateChoiceSkip","abstract":"

    Dismisses the update and skips being notified of it in the future.

    ","parent_name":"SPUUserUpdateChoice"},"Enums/SPUUserUpdateChoice.html#/c:@E@SPUUserUpdateChoice@SPUUserUpdateChoiceInstall":{"name":"SPUUserUpdateChoiceInstall","abstract":"

    Downloads (if needed) and installs the update.

    ","parent_name":"SPUUserUpdateChoice"},"Enums/SPUUserUpdateChoice.html#/c:@E@SPUUserUpdateChoice@SPUUserUpdateChoiceDismiss":{"name":"SPUUserUpdateChoiceDismiss","abstract":"

    Dismisses the update until Sparkle reminds the user of it at a later time.

    ","parent_name":"SPUUserUpdateChoice"},"Enums/SPUUpdateCheck.html#/c:@E@SPUUpdateCheck@SPUUpdateCheckUpdates":{"name":"SPUUpdateCheckUpdates","abstract":"

    The user-initiated update check corresponding to -[SPUUpdater checkForUpdates].

    ","parent_name":"SPUUpdateCheck"},"Enums/SPUUpdateCheck.html#/c:@E@SPUUpdateCheck@SPUUpdateCheckUpdatesInBackground":{"name":"SPUUpdateCheckUpdatesInBackground","abstract":"

    The background scheduled update check corresponding to -[SPUUpdater checkForUpdatesInBackground].

    ","parent_name":"SPUUpdateCheck"},"Enums/SPUUpdateCheck.html#/c:@E@SPUUpdateCheck@SPUUpdateCheckUpdateInformation":{"name":"SPUUpdateCheckUpdateInformation","abstract":"

    The informational probe update check corresponding to -[SPUUpdater checkForUpdateInformation].

    ","parent_name":"SPUUpdateCheck"},"Enums/SPUUpdateCheck.html":{"name":"SPUUpdateCheck","abstract":"

    Describes the type of update check being performed.

    "},"Enums/SPUUserUpdateChoice.html":{"name":"SPUUserUpdateChoice","abstract":"

    A choice made by the user when prompted with a new update.

    "},"Enums/SPUUserUpdateStage.html":{"name":"SPUUserUpdateStage","abstract":"

    Describes the current stage an update is undergoing.

    "},"Enums/SUError.html":{"name":"SUError","abstract":"

    Undocumented

    "},"Enums/SPUNoUpdateFoundReason.html":{"name":"SPUNoUpdateFoundReason","abstract":"

    The reason why a new update is not available.

    "},"Constants.html#/c:@SUUpdaterDidFinishLoadingAppCastNotification":{"name":"SUUpdaterDidFinishLoadingAppCastNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterDidFindValidUpdateNotification":{"name":"SUUpdaterDidFindValidUpdateNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterDidNotFindUpdateNotification":{"name":"SUUpdaterDidNotFindUpdateNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterWillRestartNotification":{"name":"SUUpdaterWillRestartNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterAppcastItemNotificationKey":{"name":"SUUpdaterAppcastItemNotificationKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterAppcastNotificationKey":{"name":"SUUpdaterAppcastNotificationKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerApplicationNameKey":{"name":"SUSystemProfilerApplicationNameKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerApplicationVersionKey":{"name":"SUSystemProfilerApplicationVersionKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPU64bitKey":{"name":"SUSystemProfilerCPU64bitKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUCountKey":{"name":"SUSystemProfilerCPUCountKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUFrequencyKey":{"name":"SUSystemProfilerCPUFrequencyKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUTypeKey":{"name":"SUSystemProfilerCPUTypeKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUSubtypeKey":{"name":"SUSystemProfilerCPUSubtypeKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerHardwareModelKey":{"name":"SUSystemProfilerHardwareModelKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerMemoryKey":{"name":"SUSystemProfilerMemoryKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerOperatingSystemVersionKey":{"name":"SUSystemProfilerOperatingSystemVersionKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerPreferredLanguageKey":{"name":"SUSystemProfilerPreferredLanguageKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSparkleErrorDomain":{"name":"SUSparkleErrorDomain","abstract":"

    Error domain used by Sparkle

    "},"Constants.html#/c:@SPUNoUpdateFoundReasonKey":{"name":"SPUNoUpdateFoundReasonKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SPULatestAppcastItemFoundKey":{"name":"SPULatestAppcastItemFoundKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SPUNoUpdateFoundUserInitiatedKey":{"name":"SPUNoUpdateFoundUserInitiatedKey","abstract":"

    Undocumented

    "},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)delegate":{"name":"delegate","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(cm)sharedUpdater":{"name":"+sharedUpdater","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(cm)updaterForBundle:":{"name":"+updaterForBundle:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)initForBundle:":{"name":"-initForBundle:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)checkForUpdates:":{"name":"-checkForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)validateMenuItem:":{"name":"-validateMenuItem:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)checkForUpdatesInBackground":{"name":"-checkForUpdatesInBackground","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)automaticallyChecksForUpdates":{"name":"automaticallyChecksForUpdates","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)automaticallyDownloadsUpdates":{"name":"automaticallyDownloadsUpdates","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)updateCheckInterval":{"name":"updateCheckInterval","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)checkForUpdateInformation":{"name":"-checkForUpdateInformation","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)feedURL":{"name":"feedURL","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)hostBundle":{"name":"hostBundle","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)sparkleBundle":{"name":"sparkleBundle","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)userAgentString":{"name":"userAgentString","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)httpHeaders":{"name":"httpHeaders","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)sendsSystemProfile":{"name":"sendsSystemProfile","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)decryptionPassword":{"name":"decryptionPassword","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)lastUpdateCheckDate":{"name":"lastUpdateCheckDate","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)resetUpdateCycle":{"name":"-resetUpdateCycle","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)updateInProgress":{"name":"updateInProgress","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(im)initWithAutomaticUpdateChecks:sendSystemProfile:":{"name":"-initWithAutomaticUpdateChecks:sendSystemProfile:","abstract":"

    Initializes a new update permission response instance.

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(py)automaticUpdateChecks":{"name":"automaticUpdateChecks","abstract":"

    A read-only property indicating whether automatic update checks are allowed or not.

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(py)sendSystemProfile":{"name":"sendSystemProfile","abstract":"

    A read-only property indicating if system profile should be sent or not.

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUStandardVersionComparator.html#/c:objc(cs)SUStandardVersionComparator(im)init":{"name":"-init","abstract":"

    Initializes a new instance of the standard version comparator.

    ","parent_name":"SUStandardVersionComparator"},"Classes/SUStandardVersionComparator.html#/c:objc(cs)SUStandardVersionComparator(cpy)defaultComparator":{"name":"defaultComparator","abstract":"

    A singleton instance of the comparator.

    ","parent_name":"SUStandardVersionComparator"},"Classes/SUStandardVersionComparator.html#/c:objc(cs)SUStandardVersionComparator(im)compareVersion:toVersion:":{"name":"-compareVersion:toVersion:","abstract":"

    Compares two version strings through textual analysis.

    ","parent_name":"SUStandardVersionComparator"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)versionString":{"name":"versionString","abstract":"

    The version of the update item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)displayVersionString":{"name":"displayVersionString","abstract":"

    The human-readable display version of the update item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)fileURL":{"name":"fileURL","abstract":"

    The file URL to the update item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)contentLength":{"name":"contentLength","abstract":"

    The content length of the download in bytes.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)infoURL":{"name":"infoURL","abstract":"

    The info URL to the update item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)informationOnlyUpdate":{"name":"informationOnlyUpdate","abstract":"

    Indicates whether or not the update item is only informational and has no download.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)title":{"name":"title","abstract":"

    The title of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)dateString":{"name":"dateString","abstract":"

    The date string of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)date":{"name":"date","abstract":"

    The date constructed from the dateString property if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)releaseNotesURL":{"name":"releaseNotesURL","abstract":"

    The release notes URL of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)itemDescription":{"name":"itemDescription","abstract":"

    The description of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)fullReleaseNotesURL":{"name":"fullReleaseNotesURL","abstract":"

    The full release notes URL of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)minimumSystemVersion":{"name":"minimumSystemVersion","abstract":"

    The required minimum system operating version string for this update if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)minimumOperatingSystemVersionIsOK":{"name":"minimumOperatingSystemVersionIsOK","abstract":"

    Indicates whether or not the current running system passes the minimumSystemVersion requirement.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)maximumSystemVersion":{"name":"maximumSystemVersion","abstract":"

    The required maximum system operating version string for this update if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)maximumOperatingSystemVersionIsOK":{"name":"maximumOperatingSystemVersionIsOK","abstract":"

    Indicates whether or not the current running system passes the maximumSystemVersion requirement.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)channel":{"name":"channel","abstract":"

    The channel the update item is on if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)installationType":{"name":"installationType","abstract":"

    The installation type of the update at fileURL

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)phasedRolloutInterval":{"name":"phasedRolloutInterval","abstract":"

    The phased rollout interval of the update item in seconds if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)minimumAutoupdateVersion":{"name":"minimumAutoupdateVersion","abstract":"

    The minimum bundle version string this update requires for automatically downloading and installing updates if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)majorUpgrade":{"name":"majorUpgrade","abstract":"

    Indicates whether or not the update item is a major upgrade.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)criticalUpdate":{"name":"criticalUpdate","abstract":"

    Indicates whether or not the update item is critical.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)osString":{"name":"osString","abstract":"

    Specifies the operating system the download update is available for if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)macOsUpdate":{"name":"macOsUpdate","abstract":"

    Indicates whether or not this update item is for macOS.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)deltaUpdates":{"name":"deltaUpdates","abstract":"

    The delta updates for this update item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)deltaUpdate":{"name":"deltaUpdate","abstract":"

    Indicates whether or not the update item is a delta update.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)propertiesDictionary":{"name":"propertiesDictionary","abstract":"

    The dictionary representing the entire appcast item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(cm)emptyAppcastItem":{"name":"+emptyAppcastItem","abstract":"

    An empty appcast item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)initWithDictionary:failureReason:":{"name":"-initWithDictionary:failureReason:","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)initWithDictionary:relativeToURL:failureReason:":{"name":"-initWithDictionary:relativeToURL:failureReason:","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcast.html#/c:objc(cs)SUAppcast(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SUAppcast"},"Classes/SUAppcast.html#/c:objc(cs)SUAppcast(py)items":{"name":"items","abstract":"

    The collection of update items.

    ","parent_name":"SUAppcast"},"Classes/SPUUserUpdateState.html#/c:objc(cs)SPUUserUpdateState(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SPUUserUpdateState"},"Classes/SPUUserUpdateState.html#/c:objc(cs)SPUUserUpdateState(py)stage":{"name":"stage","abstract":"

    The current update stage.

    ","parent_name":"SPUUserUpdateState"},"Classes/SPUUserUpdateState.html#/c:objc(cs)SPUUserUpdateState(py)userInitiated":{"name":"userInitiated","abstract":"

    Indicates whether or not the update check was initiated by the user.

    ","parent_name":"SPUUserUpdateState"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(im)initWithHostBundle:":{"name":"-initWithHostBundle:","abstract":"

    Undocumented

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)automaticallyChecksForUpdates":{"name":"automaticallyChecksForUpdates","abstract":"

    Indicates whether or not automatic update checks are enabled.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)updateCheckInterval":{"name":"updateCheckInterval","abstract":"

    The regular update check interval.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)allowsAutomaticUpdates":{"name":"allowsAutomaticUpdates","abstract":"

    Indicates whether or not automatically downloading updates is allowed to be turned on by the user.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)automaticallyDownloadsUpdates":{"name":"automaticallyDownloadsUpdates","abstract":"

    Indicates whether or not automatically downloading updates is enabled by the user or developer.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)sendsSystemProfile":{"name":"sendsSystemProfile","abstract":"

    Indicates whether or not anonymous system profile information is sent when checking for updates.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)initWithHostBundle:applicationBundle:userDriver:delegate:":{"name":"-initWithHostBundle:applicationBundle:userDriver:delegate:","abstract":"

    Initializes a new SPUUpdater instance

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)init":{"name":"-init","abstract":"

    Use -initWithHostBundle:applicationBundle:userDriver:delegate: or SPUStandardUpdaterController standard adapter instead.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)startUpdater:":{"name":"-startUpdater:","abstract":"

    Starts the updater.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)checkForUpdates":{"name":"-checkForUpdates","abstract":"

    Checks for updates, and displays progress while doing so if needed.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)checkForUpdatesInBackground":{"name":"-checkForUpdatesInBackground","abstract":"

    Checks for updates, but does not display any UI unless an update is found.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)checkForUpdateInformation":{"name":"-checkForUpdateInformation","abstract":"

    Begins a “probing” check for updates which will not actually offer to","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)canCheckForUpdates":{"name":"canCheckForUpdates","abstract":"

    A property indicating whether or not updates can be checked by the user.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)sessionInProgress":{"name":"sessionInProgress","abstract":"

    A property indicating whether or not an update session is in progress.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)automaticallyChecksForUpdates":{"name":"automaticallyChecksForUpdates","abstract":"

    A property indicating whether or not to check for updates automatically.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)updateCheckInterval":{"name":"updateCheckInterval","abstract":"

    A property indicating the current automatic update check interval in seconds.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)automaticallyDownloadsUpdates":{"name":"automaticallyDownloadsUpdates","abstract":"

    A property indicating whether or not updates can be automatically downloaded in the background.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)feedURL":{"name":"feedURL","abstract":"

    The URL of the appcast used to download update information.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)hostBundle":{"name":"hostBundle","abstract":"

    The host bundle that is being updated.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)userAgentString":{"name":"userAgentString","abstract":"

    The user agent used when checking for updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)httpHeaders":{"name":"httpHeaders","abstract":"

    The HTTP headers used when checking for updates, downloading release notes, and downloading updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)sendsSystemProfile":{"name":"sendsSystemProfile","abstract":"

    A property indicating whether or not the user’s system profile information is sent when checking for updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)lastUpdateCheckDate":{"name":"lastUpdateCheckDate","abstract":"

    The date of the last update check or nil if no check has been performed yet.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)resetUpdateCycle":{"name":"-resetUpdateCycle","abstract":"

    Appropriately schedules or cancels the update checking timer according to the preferences for time interval and automatic checks.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)systemProfileArray":{"name":"systemProfileArray","abstract":"

    The system profile information that is sent when checking for updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdatePermissionRequest.html#/c:objc(cs)SPUUpdatePermissionRequest(im)initWithSystemProfile:":{"name":"-initWithSystemProfile:","abstract":"

    Initializes a new update permission request instance.

    ","parent_name":"SPUUpdatePermissionRequest"},"Classes/SPUUpdatePermissionRequest.html#/c:objc(cs)SPUUpdatePermissionRequest(py)systemProfile":{"name":"systemProfile","abstract":"

    A read-only property for the user’s system profile.

    ","parent_name":"SPUUpdatePermissionRequest"},"Classes/SPUStandardUserDriver.html#/c:objc(cs)SPUStandardUserDriver(im)initWithHostBundle:delegate:":{"name":"-initWithHostBundle:delegate:","abstract":"

    Initializes a Sparkle’s standard user driver for user update interactions

    ","parent_name":"SPUStandardUserDriver"},"Classes/SPUStandardUserDriver.html#/c:objc(cs)SPUStandardUserDriver(im)init":{"name":"-init","abstract":"

    Use initWithHostBundle:delegate: instead.

    ","parent_name":"SPUStandardUserDriver"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController@updaterDelegate":{"name":"updaterDelegate","abstract":"

    Interface builder outlet for the updater’s delegate.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController@userDriverDelegate":{"name":"userDriverDelegate","abstract":"

    Interface builder outlet for the user driver’s delegate.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(py)updater":{"name":"updater","abstract":"

    Accessible property for the updater. Some properties on the updater can be binded via KVO

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(py)userDriver":{"name":"userDriver","abstract":"

    Accessible property for the updater’s user driver.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)init":{"name":"-init","abstract":"

    Create a new SPUStandardUpdaterController from a nib.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)initWithUpdaterDelegate:userDriverDelegate:":{"name":"-initWithUpdaterDelegate:userDriverDelegate:","abstract":"

    Create a new SPUStandardUpdaterController programmatically.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)initWithStartingUpdater:updaterDelegate:userDriverDelegate:":{"name":"-initWithStartingUpdater:updaterDelegate:userDriverDelegate:","abstract":"

    Create a new SPUStandardUpdaterController programmatically allowing you to specify whether or not to start the updater immediately.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)startUpdater":{"name":"-startUpdater","abstract":"

    Starts the updater if it has not already been started.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)checkForUpdates:":{"name":"-checkForUpdates:","abstract":"

    Explicitly checks for updates and displays a progress dialog while doing so.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)data":{"name":"data","abstract":"

    The raw data that was downloaded.

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)URL":{"name":"URL","abstract":"

    The URL that was fetched from.

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)textEncodingName":{"name":"textEncodingName","abstract":"

    The IANA charset encoding name if available. Eg: “utf-8”

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)MIMEType":{"name":"MIMEType","abstract":"

    The MIME type if available. Eg: “text/plain”

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html":{"name":"SPUDownloadData","abstract":"

    A class for containing downloaded data along with some information about it.

    "},"Classes/SPUStandardUpdaterController.html":{"name":"SPUStandardUpdaterController","abstract":"

    A controller class that instantiates a SPUUpdater and allows binding UI to its updater settings.

    "},"Classes/SPUStandardUserDriver.html":{"name":"SPUStandardUserDriver","abstract":"

    Sparkle’s standard built-in user driver for updater interactions

    "},"Classes/SPUUpdatePermissionRequest.html":{"name":"SPUUpdatePermissionRequest","abstract":"

    This class represents information needed to make a permission request for checking updates.

    "},"Classes/SPUUpdater.html":{"name":"SPUUpdater","abstract":"

    The main API in Sparkle for controlling the update mechanism.

    "},"Classes/SPUUpdaterSettings.html":{"name":"SPUUpdaterSettings","abstract":"

    This class can be used for reading certain updater settings.

    "},"Classes/SPUUserUpdateState.html":{"name":"SPUUserUpdateState","abstract":"

    This represents the user’s current update state.

    "},"Classes/SUAppcast.html":{"name":"SUAppcast","abstract":"

    The appcast representing a collection of SUAppcastItem items in the feed.

    "},"Classes/SUAppcastItem.html":{"name":"SUAppcastItem","abstract":"

    The appcast item describing an update in the application’s appcast feed.

    "},"Classes/SUStandardVersionComparator.html":{"name":"SUStandardVersionComparator","abstract":"

    Sparkle’s default version comparator.

    "},"Classes/SUUpdatePermissionResponse.html":{"name":"SUUpdatePermissionResponse","abstract":"

    This class represents a response for permission to check updates.

    "},"Classes/SUUpdater.html":{"name":"SUUpdater","abstract":"

    The legacy API in Sparkle for controlling the update mechanism.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Constants.html":{"name":"Constants","abstract":"

    The following constants are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "}} \ No newline at end of file +{"Protocols/SUVersionDisplay.html#/c:objc(pl)SUVersionDisplay(im)formatVersion:andVersion:":{"name":"-formatVersion:andVersion:","abstract":"

    Formats two version strings.

    ","parent_name":"SUVersionDisplay"},"Protocols/SUVersionComparison.html#/c:objc(pl)SUVersionComparison(im)compareVersion:toVersion:":{"name":"-compareVersion:toVersion:","abstract":"

    An abstract method to compare two version strings.

    ","parent_name":"SUVersionComparison"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterMayCheckForUpdates:":{"name":"-updaterMayCheckForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)feedParametersForUpdater:sendingSystemProfile:":{"name":"-feedParametersForUpdater:sendingSystemProfile:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)feedURLStringForUpdater:":{"name":"-feedURLStringForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterShouldPromptForPermissionToCheckForUpdates:":{"name":"-updaterShouldPromptForPermissionToCheckForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didFinishLoadingAppcast:":{"name":"-updater:didFinishLoadingAppcast:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)bestValidUpdateInAppcast:forUpdater:":{"name":"-bestValidUpdateInAppcast:forUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didFindValidUpdate:":{"name":"-updater:didFindValidUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterDidNotFindUpdate:":{"name":"-updaterDidNotFindUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willDownloadUpdate:withRequest:":{"name":"-updater:willDownloadUpdate:withRequest:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didDownloadUpdate:":{"name":"-updater:didDownloadUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:failedToDownloadUpdate:error:":{"name":"-updater:failedToDownloadUpdate:error:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)userDidCancelDownload:":{"name":"-userDidCancelDownload:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willExtractUpdate:":{"name":"-updater:willExtractUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didExtractUpdate:":{"name":"-updater:didExtractUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willInstallUpdate:":{"name":"-updater:willInstallUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:userDidSkipThisVersion:":{"name":"-updater:userDidSkipThisVersion:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:shouldPostponeRelaunchForUpdate:untilInvoking:":{"name":"-updater:shouldPostponeRelaunchForUpdate:untilInvoking:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:shouldPostponeRelaunchForUpdate:":{"name":"-updater:shouldPostponeRelaunchForUpdate:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterShouldRelaunchApplication:":{"name":"-updaterShouldRelaunchApplication:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterWillRelaunchApplication:":{"name":"-updaterWillRelaunchApplication:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterDidRelaunchApplication:":{"name":"-updaterDidRelaunchApplication:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)versionComparatorForUpdater:":{"name":"-versionComparatorForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)versionDisplayerForUpdater:":{"name":"-versionDisplayerForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)pathToRelaunchForUpdater:":{"name":"-pathToRelaunchForUpdater:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterWillShowModalAlert:":{"name":"-updaterWillShowModalAlert:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updaterDidShowModalAlert:":{"name":"-updaterDidShowModalAlert:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willInstallUpdateOnQuit:immediateInstallationInvocation:":{"name":"-updater:willInstallUpdateOnQuit:immediateInstallationInvocation:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:willInstallUpdateOnQuit:immediateInstallationBlock:":{"name":"-updater:willInstallUpdateOnQuit:immediateInstallationBlock:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didCancelInstallUpdateOnQuit:":{"name":"-updater:didCancelInstallUpdateOnQuit:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SUUpdaterDelegate.html#/c:objc(pl)SUUpdaterDelegate(im)updater:didAbortWithError:":{"name":"-updater:didAbortWithError:","abstract":"

    Undocumented

    ","parent_name":"SUUpdaterDelegate"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdatePermissionRequest:reply:":{"name":"-showUpdatePermissionRequest:reply:","abstract":"

    Show an updater permission request to the user

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUserInitiatedUpdateCheckWithCancellation:":{"name":"-showUserInitiatedUpdateCheckWithCancellation:","abstract":"

    Show the user initating an update check

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateFoundWithAppcastItem:state:reply:":{"name":"-showUpdateFoundWithAppcastItem:state:reply:","abstract":"

    Show the user a new update is found.

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateReleaseNotesWithDownloadData:":{"name":"-showUpdateReleaseNotesWithDownloadData:","abstract":"

    Show the user the release notes for the new update

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateReleaseNotesFailedToDownloadWithError:":{"name":"-showUpdateReleaseNotesFailedToDownloadWithError:","abstract":"

    Show the user that the new update’s release notes could not be downloaded

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateNotFoundWithError:acknowledgement:":{"name":"-showUpdateNotFoundWithError:acknowledgement:","abstract":"

    Show the user a new update was not found

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdaterError:acknowledgement:":{"name":"-showUpdaterError:acknowledgement:","abstract":"

    Show the user an update error occurred

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadInitiatedWithCancellation:":{"name":"-showDownloadInitiatedWithCancellation:","abstract":"

    Show the user that downloading the new update initiated

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadDidReceiveExpectedContentLength:":{"name":"-showDownloadDidReceiveExpectedContentLength:","abstract":"

    Show the user the content length of the new update that will be downloaded

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadDidReceiveDataOfLength:":{"name":"-showDownloadDidReceiveDataOfLength:","abstract":"

    Show the user that the update download received more data

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showDownloadDidStartExtractingUpdate":{"name":"-showDownloadDidStartExtractingUpdate","abstract":"

    Show the user that the update finished downloading and started extracting

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showExtractionReceivedProgress:":{"name":"-showExtractionReceivedProgress:","abstract":"

    Show the user that the update is extracting with progress

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showReadyToInstallAndRelaunch:":{"name":"-showReadyToInstallAndRelaunch:","abstract":"

    Show the user that the update is ready to install & relaunch

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showInstallingUpdateWithApplicationTerminated:":{"name":"-showInstallingUpdateWithApplicationTerminated:","abstract":"

    Show the user that the update is installing

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateInstalledAndRelaunched:acknowledgement:":{"name":"-showUpdateInstalledAndRelaunched:acknowledgement:","abstract":"

    Show the user that the update installation finished

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateInFocus":{"name":"-showUpdateInFocus","abstract":"

    Show the user the current presented update or its progress in utmost focus

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)dismissUpdateInstallation":{"name":"-dismissUpdateInstallation","abstract":"

    Dismiss the current update installation

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateNotFoundWithAcknowledgement:":{"name":"-showUpdateNotFoundWithAcknowledgement:","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showUpdateInstallationDidFinishWithAcknowledgement:":{"name":"-showUpdateInstallationDidFinishWithAcknowledgement:","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)dismissUserInitiatedUpdateCheck":{"name":"-dismissUserInitiatedUpdateCheck","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showInstallingUpdate":{"name":"-showInstallingUpdate","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUserDriver.html#/c:objc(pl)SPUUserDriver(im)showSendingTerminationSignal":{"name":"-showSendingTerminationSignal","abstract":"

    Undocumented

    ","parent_name":"SPUUserDriver"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:mayPerformUpdateCheck:error:":{"name":"-updater:mayPerformUpdateCheck:error:","abstract":"

    Returns whether to allow Sparkle to check for updates.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)allowedChannelsForUpdater:":{"name":"-allowedChannelsForUpdater:","abstract":"

    Returns the set of Sparkle channels the updater is allowed to find new updates from.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)feedURLStringForUpdater:":{"name":"-feedURLStringForUpdater:","abstract":"

    Returns a custom appcast URL used for checking for new updates.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)feedParametersForUpdater:sendingSystemProfile:":{"name":"-feedParametersForUpdater:sendingSystemProfile:","abstract":"

    Returns additional parameters to append to the appcast URL’s query string.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterShouldPromptForPermissionToCheckForUpdates:":{"name":"-updaterShouldPromptForPermissionToCheckForUpdates:","abstract":"

    Returns whether Sparkle should prompt the user about checking for new updates automatically.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)allowedSystemProfileKeysForUpdater:":{"name":"-allowedSystemProfileKeysForUpdater:","abstract":"

    Returns an allowed list of system profile keys to be appended to the appcast URL’s query string.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didFinishLoadingAppcast:":{"name":"-updater:didFinishLoadingAppcast:","abstract":"

    Called after Sparkle has downloaded the appcast from the remote server.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didFindValidUpdate:":{"name":"-updater:didFindValidUpdate:","abstract":"

    Called when a new valid update is found by the update driver.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterDidNotFindUpdate:error:":{"name":"-updaterDidNotFindUpdate:error:","abstract":"

    Called when a valid new update is not found.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterDidNotFindUpdate:":{"name":"-updaterDidNotFindUpdate:","abstract":"

    Called when a valid new update is not found.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)bestValidUpdateInAppcast:forUpdater:":{"name":"-bestValidUpdateInAppcast:forUpdater:","abstract":"

    Returns the item in the appcast corresponding to the update that should be installed.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:shouldProceedWithUpdate:updateCheck:error:":{"name":"-updater:shouldProceedWithUpdate:updateCheck:error:","abstract":"

    Returns whether or not the updater should proceed with the new chosen update from the appcast.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:userDidSkipThisVersion:":{"name":"-updater:userDidSkipThisVersion:","abstract":"

    Called when an update is skipped by the user.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:shouldDownloadReleaseNotesForUpdate:":{"name":"-updater:shouldDownloadReleaseNotesForUpdate:","abstract":"

    Returns whether the release notes (if available) should be downloaded after an update is found and shown.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willDownloadUpdate:withRequest:":{"name":"-updater:willDownloadUpdate:withRequest:","abstract":"

    Called immediately before downloading the specified update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didDownloadUpdate:":{"name":"-updater:didDownloadUpdate:","abstract":"

    Called immediately after succesfull download of the specified update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:failedToDownloadUpdate:error:":{"name":"-updater:failedToDownloadUpdate:error:","abstract":"

    Called after the specified update failed to download.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)userDidCancelDownload:":{"name":"-userDidCancelDownload:","abstract":"

    Called when the user cancels an update while it is being downloaded.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willExtractUpdate:":{"name":"-updater:willExtractUpdate:","abstract":"

    Called immediately before extracting the specified downloaded update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didExtractUpdate:":{"name":"-updater:didExtractUpdate:","abstract":"

    Called immediately after extracting the specified downloaded update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willInstallUpdate:":{"name":"-updater:willInstallUpdate:","abstract":"

    Called immediately before installing the specified update.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:shouldPostponeRelaunchForUpdate:untilInvokingBlock:":{"name":"-updater:shouldPostponeRelaunchForUpdate:untilInvokingBlock:","abstract":"

    Returns whether the relaunch should be delayed in order to perform other tasks.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterShouldRelaunchApplication:":{"name":"-updaterShouldRelaunchApplication:","abstract":"

    Returns whether the application should be relaunched at all.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterWillRelaunchApplication:":{"name":"-updaterWillRelaunchApplication:","abstract":"

    Called immediately before relaunching.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)versionComparatorForUpdater:":{"name":"-versionComparatorForUpdater:","abstract":"

    Returns an object that compares version numbers to determine their arithmetic relation to each other.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willScheduleUpdateCheckAfterDelay:":{"name":"-updater:willScheduleUpdateCheckAfterDelay:","abstract":"

    Called when a background update will be scheduled after a delay.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterWillNotScheduleUpdateCheck:":{"name":"-updaterWillNotScheduleUpdateCheck:","abstract":"

    Called when no update checks will be scheduled in the future.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)decryptionPasswordForUpdater:":{"name":"-decryptionPasswordForUpdater:","abstract":"

    Returns the decryption password (if any) which is used to extract the update archive DMG.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:willInstallUpdateOnQuit:immediateInstallationBlock:":{"name":"-updater:willInstallUpdateOnQuit:immediateInstallationBlock:","abstract":"

    Called when an update is scheduled to be silently installed on quit after downloading the update automatically.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didAbortWithError:":{"name":"-updater:didAbortWithError:","abstract":"

    Called after the update driver aborts due to an error.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updater:didFinishUpdateCycleForUpdateCheck:error:":{"name":"-updater:didFinishUpdateCycleForUpdateCheck:error:","abstract":"

    Called after the update driver finishes.

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUUpdaterDelegate.html#/c:objc(pl)SPUUpdaterDelegate(im)updaterMayCheckForUpdates:":{"name":"-updaterMayCheckForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SPUUpdaterDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverWillShowModalAlert":{"name":"-standardUserDriverWillShowModalAlert","abstract":"

    Called before showing a modal alert window,","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverDidShowModalAlert":{"name":"-standardUserDriverDidShowModalAlert","abstract":"

    Called after showing a modal alert window,","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverRequestsVersionDisplayer":{"name":"-standardUserDriverRequestsVersionDisplayer","abstract":"

    Returns an object that formats version numbers for display to the user.","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverShowVersionHistoryForAppcastItem:":{"name":"-standardUserDriverShowVersionHistoryForAppcastItem:","abstract":"

    Handles showing the full release notes to the user.

    ","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html":{"name":"SPUStandardUserDriverDelegate","abstract":"

    A protocol for Sparkle’s standard user driver’s delegate

    "},"Protocols/SPUUpdaterDelegate.html":{"name":"SPUUpdaterDelegate","abstract":"

    Provides delegation methods to control the behavior of an SPUUpdater object.

    "},"Protocols/SPUUserDriver.html":{"name":"SPUUserDriver","abstract":"

    The API in Sparkle for controlling the user interaction.

    "},"Protocols/SUUpdaterDelegate.html":{"name":"SUUpdaterDelegate","abstract":"

    Undocumented

    "},"Protocols/SUVersionComparison.html":{"name":"SUVersionComparison","abstract":"

    Provides version comparison facilities for Sparkle.

    "},"Protocols/SUVersionDisplay.html":{"name":"SUVersionDisplay","abstract":"

    Applies special display formatting to version numbers.

    "},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonUnknown":{"name":"SPUNoUpdateFoundReasonUnknown","abstract":"

    A new update is unavailable for an unknown reason.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonOnLatestVersion":{"name":"SPUNoUpdateFoundReasonOnLatestVersion","abstract":"

    A new update is unavailable because the user is on the latest known version in the appcast feed.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonOnNewerThanLatestVersion":{"name":"SPUNoUpdateFoundReasonOnNewerThanLatestVersion","abstract":"

    A new update is unavailable because the user is on a version newer than the latest known version in the appcast feed.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonSystemIsTooOld":{"name":"SPUNoUpdateFoundReasonSystemIsTooOld","abstract":"

    A new update is unavailable because the user’s operating system version is too old for the update.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SPUNoUpdateFoundReason.html#/c:@E@SPUNoUpdateFoundReason@SPUNoUpdateFoundReasonSystemIsTooNew":{"name":"SPUNoUpdateFoundReasonSystemIsTooNew","abstract":"

    A new update is unavailable because the user’s operating system version is too new for the update.

    ","parent_name":"SPUNoUpdateFoundReason"},"Enums/SUError.html#/c:@E@SUError@SUNoPublicDSAFoundError":{"name":"SUNoPublicDSAFoundError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInsufficientSigningError":{"name":"SUInsufficientSigningError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInsecureFeedURLError":{"name":"SUInsecureFeedURLError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidFeedURLError":{"name":"SUInvalidFeedURLError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidUpdaterError":{"name":"SUInvalidUpdaterError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidHostBundleIdentifierError":{"name":"SUInvalidHostBundleIdentifierError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInvalidHostVersionError":{"name":"SUInvalidHostVersionError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAppcastParseError":{"name":"SUAppcastParseError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUNoUpdateError":{"name":"SUNoUpdateError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAppcastError":{"name":"SUAppcastError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SURunningFromDiskImageError":{"name":"SURunningFromDiskImageError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUResumeAppcastError":{"name":"SUResumeAppcastError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SURunningTranslocated":{"name":"SURunningTranslocated","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUWebKitTerminationError":{"name":"SUWebKitTerminationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUTemporaryDirectoryError":{"name":"SUTemporaryDirectoryError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUDownloadError":{"name":"SUDownloadError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUUnarchivingError":{"name":"SUUnarchivingError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUSignatureError":{"name":"SUSignatureError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUValidationError":{"name":"SUValidationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUFileCopyFailure":{"name":"SUFileCopyFailure","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAuthenticationFailure":{"name":"SUAuthenticationFailure","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUMissingUpdateError":{"name":"SUMissingUpdateError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUMissingInstallerToolError":{"name":"SUMissingInstallerToolError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SURelaunchError":{"name":"SURelaunchError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationError":{"name":"SUInstallationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUDowngradeError":{"name":"SUDowngradeError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationCanceledError":{"name":"SUInstallationCanceledError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationAuthorizeLaterError":{"name":"SUInstallationAuthorizeLaterError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUNotValidUpdateError":{"name":"SUNotValidUpdateError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUAgentInvalidationError":{"name":"SUAgentInvalidationError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUIncorrectAPIUsageError":{"name":"SUIncorrectAPIUsageError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SPUUserUpdateStage.html#/c:@E@SPUUserUpdateStage@SPUUserUpdateStageNotDownloaded":{"name":"SPUUserUpdateStageNotDownloaded","abstract":"

    The update has not been downloaded.

    ","parent_name":"SPUUserUpdateStage"},"Enums/SPUUserUpdateStage.html#/c:@E@SPUUserUpdateStage@SPUUserUpdateStageDownloaded":{"name":"SPUUserUpdateStageDownloaded","abstract":"

    The update has already been downloaded but not begun installing.

    ","parent_name":"SPUUserUpdateStage"},"Enums/SPUUserUpdateStage.html#/c:@E@SPUUserUpdateStage@SPUUserUpdateStageInstalling":{"name":"SPUUserUpdateStageInstalling","abstract":"

    The update has already been downloaded and began installing in the background.

    ","parent_name":"SPUUserUpdateStage"},"Enums/SPUUserUpdateChoice.html#/c:@E@SPUUserUpdateChoice@SPUUserUpdateChoiceSkip":{"name":"SPUUserUpdateChoiceSkip","abstract":"

    Dismisses the update and skips being notified of it in the future.

    ","parent_name":"SPUUserUpdateChoice"},"Enums/SPUUserUpdateChoice.html#/c:@E@SPUUserUpdateChoice@SPUUserUpdateChoiceInstall":{"name":"SPUUserUpdateChoiceInstall","abstract":"

    Downloads (if needed) and installs the update.

    ","parent_name":"SPUUserUpdateChoice"},"Enums/SPUUserUpdateChoice.html#/c:@E@SPUUserUpdateChoice@SPUUserUpdateChoiceDismiss":{"name":"SPUUserUpdateChoiceDismiss","abstract":"

    Dismisses the update until Sparkle reminds the user of it at a later time.

    ","parent_name":"SPUUserUpdateChoice"},"Enums/SPUUpdateCheck.html#/c:@E@SPUUpdateCheck@SPUUpdateCheckUpdates":{"name":"SPUUpdateCheckUpdates","abstract":"

    The user-initiated update check corresponding to -[SPUUpdater checkForUpdates].

    ","parent_name":"SPUUpdateCheck"},"Enums/SPUUpdateCheck.html#/c:@E@SPUUpdateCheck@SPUUpdateCheckUpdatesInBackground":{"name":"SPUUpdateCheckUpdatesInBackground","abstract":"

    The background scheduled update check corresponding to -[SPUUpdater checkForUpdatesInBackground].

    ","parent_name":"SPUUpdateCheck"},"Enums/SPUUpdateCheck.html#/c:@E@SPUUpdateCheck@SPUUpdateCheckUpdateInformation":{"name":"SPUUpdateCheckUpdateInformation","abstract":"

    The informational probe update check corresponding to -[SPUUpdater checkForUpdateInformation].

    ","parent_name":"SPUUpdateCheck"},"Enums/SPUUpdateCheck.html":{"name":"SPUUpdateCheck","abstract":"

    Describes the type of update check being performed.

    "},"Enums/SPUUserUpdateChoice.html":{"name":"SPUUserUpdateChoice","abstract":"

    A choice made by the user when prompted with a new update.

    "},"Enums/SPUUserUpdateStage.html":{"name":"SPUUserUpdateStage","abstract":"

    Describes the current stage an update is undergoing.

    "},"Enums/SUError.html":{"name":"SUError","abstract":"

    Undocumented

    "},"Enums/SPUNoUpdateFoundReason.html":{"name":"SPUNoUpdateFoundReason","abstract":"

    The reason why a new update is not available.

    "},"Constants.html#/c:@SUUpdaterDidFinishLoadingAppCastNotification":{"name":"SUUpdaterDidFinishLoadingAppCastNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterDidFindValidUpdateNotification":{"name":"SUUpdaterDidFindValidUpdateNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterDidNotFindUpdateNotification":{"name":"SUUpdaterDidNotFindUpdateNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterWillRestartNotification":{"name":"SUUpdaterWillRestartNotification","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterAppcastItemNotificationKey":{"name":"SUUpdaterAppcastItemNotificationKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUUpdaterAppcastNotificationKey":{"name":"SUUpdaterAppcastNotificationKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerApplicationNameKey":{"name":"SUSystemProfilerApplicationNameKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerApplicationVersionKey":{"name":"SUSystemProfilerApplicationVersionKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPU64bitKey":{"name":"SUSystemProfilerCPU64bitKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUCountKey":{"name":"SUSystemProfilerCPUCountKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUFrequencyKey":{"name":"SUSystemProfilerCPUFrequencyKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUTypeKey":{"name":"SUSystemProfilerCPUTypeKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerCPUSubtypeKey":{"name":"SUSystemProfilerCPUSubtypeKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerHardwareModelKey":{"name":"SUSystemProfilerHardwareModelKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerMemoryKey":{"name":"SUSystemProfilerMemoryKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerOperatingSystemVersionKey":{"name":"SUSystemProfilerOperatingSystemVersionKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSystemProfilerPreferredLanguageKey":{"name":"SUSystemProfilerPreferredLanguageKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SUSparkleErrorDomain":{"name":"SUSparkleErrorDomain","abstract":"

    Error domain used by Sparkle

    "},"Constants.html#/c:@SPUNoUpdateFoundReasonKey":{"name":"SPUNoUpdateFoundReasonKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SPULatestAppcastItemFoundKey":{"name":"SPULatestAppcastItemFoundKey","abstract":"

    Undocumented

    "},"Constants.html#/c:@SPUNoUpdateFoundUserInitiatedKey":{"name":"SPUNoUpdateFoundUserInitiatedKey","abstract":"

    Undocumented

    "},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)delegate":{"name":"delegate","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(cm)sharedUpdater":{"name":"+sharedUpdater","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(cm)updaterForBundle:":{"name":"+updaterForBundle:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)initForBundle:":{"name":"-initForBundle:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)checkForUpdates:":{"name":"-checkForUpdates:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)validateMenuItem:":{"name":"-validateMenuItem:","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)checkForUpdatesInBackground":{"name":"-checkForUpdatesInBackground","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)automaticallyChecksForUpdates":{"name":"automaticallyChecksForUpdates","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)automaticallyDownloadsUpdates":{"name":"automaticallyDownloadsUpdates","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)updateCheckInterval":{"name":"updateCheckInterval","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)checkForUpdateInformation":{"name":"-checkForUpdateInformation","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)feedURL":{"name":"feedURL","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)hostBundle":{"name":"hostBundle","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)sparkleBundle":{"name":"sparkleBundle","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)userAgentString":{"name":"userAgentString","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)httpHeaders":{"name":"httpHeaders","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)sendsSystemProfile":{"name":"sendsSystemProfile","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)decryptionPassword":{"name":"decryptionPassword","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)lastUpdateCheckDate":{"name":"lastUpdateCheckDate","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(im)resetUpdateCycle":{"name":"-resetUpdateCycle","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdater.html#/c:objc(cs)SUUpdater(py)updateInProgress":{"name":"updateInProgress","abstract":"

    Undocumented

    ","parent_name":"SUUpdater"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(im)initWithAutomaticUpdateChecks:sendSystemProfile:":{"name":"-initWithAutomaticUpdateChecks:sendSystemProfile:","abstract":"

    Initializes a new update permission response instance.

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(py)automaticUpdateChecks":{"name":"automaticUpdateChecks","abstract":"

    A read-only property indicating whether automatic update checks are allowed or not.

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUUpdatePermissionResponse.html#/c:objc(cs)SUUpdatePermissionResponse(py)sendSystemProfile":{"name":"sendSystemProfile","abstract":"

    A read-only property indicating if system profile should be sent or not.

    ","parent_name":"SUUpdatePermissionResponse"},"Classes/SUStandardVersionComparator.html#/c:objc(cs)SUStandardVersionComparator(im)init":{"name":"-init","abstract":"

    Initializes a new instance of the standard version comparator.

    ","parent_name":"SUStandardVersionComparator"},"Classes/SUStandardVersionComparator.html#/c:objc(cs)SUStandardVersionComparator(cpy)defaultComparator":{"name":"defaultComparator","abstract":"

    A singleton instance of the comparator.

    ","parent_name":"SUStandardVersionComparator"},"Classes/SUStandardVersionComparator.html#/c:objc(cs)SUStandardVersionComparator(im)compareVersion:toVersion:":{"name":"-compareVersion:toVersion:","abstract":"

    Compares two version strings through textual analysis.

    ","parent_name":"SUStandardVersionComparator"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)versionString":{"name":"versionString","abstract":"

    The version of the update item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)displayVersionString":{"name":"displayVersionString","abstract":"

    The human-readable display version of the update item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)fileURL":{"name":"fileURL","abstract":"

    The file URL to the update item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)contentLength":{"name":"contentLength","abstract":"

    The content length of the download in bytes.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)infoURL":{"name":"infoURL","abstract":"

    The info URL to the update item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)informationOnlyUpdate":{"name":"informationOnlyUpdate","abstract":"

    Indicates whether or not the update item is only informational and has no download.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)title":{"name":"title","abstract":"

    The title of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)dateString":{"name":"dateString","abstract":"

    The date string of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)date":{"name":"date","abstract":"

    The date constructed from the dateString property if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)releaseNotesURL":{"name":"releaseNotesURL","abstract":"

    The release notes URL of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)itemDescription":{"name":"itemDescription","abstract":"

    The description of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)fullReleaseNotesURL":{"name":"fullReleaseNotesURL","abstract":"

    The full release notes URL of the appcast item if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)minimumSystemVersion":{"name":"minimumSystemVersion","abstract":"

    The required minimum system operating version string for this update if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)minimumOperatingSystemVersionIsOK":{"name":"minimumOperatingSystemVersionIsOK","abstract":"

    Indicates whether or not the current running system passes the minimumSystemVersion requirement.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)maximumSystemVersion":{"name":"maximumSystemVersion","abstract":"

    The required maximum system operating version string for this update if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)maximumOperatingSystemVersionIsOK":{"name":"maximumOperatingSystemVersionIsOK","abstract":"

    Indicates whether or not the current running system passes the maximumSystemVersion requirement.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)channel":{"name":"channel","abstract":"

    The channel the update item is on if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)installationType":{"name":"installationType","abstract":"

    The installation type of the update at fileURL

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)phasedRolloutInterval":{"name":"phasedRolloutInterval","abstract":"

    The phased rollout interval of the update item in seconds if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)minimumAutoupdateVersion":{"name":"minimumAutoupdateVersion","abstract":"

    The minimum bundle version string this update requires for automatically downloading and installing updates if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)majorUpgrade":{"name":"majorUpgrade","abstract":"

    Indicates whether or not the update item is a major upgrade.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)ignoreSkippedUpgradesBelowVersion":{"name":"ignoreSkippedUpgradesBelowVersion","abstract":"

    Previously skipped upgrades by the user will be ignored if they skipped an update whose version precedes this version.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)criticalUpdate":{"name":"criticalUpdate","abstract":"

    Indicates whether or not the update item is critical.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)osString":{"name":"osString","abstract":"

    Specifies the operating system the download update is available for if provided.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)macOsUpdate":{"name":"macOsUpdate","abstract":"

    Indicates whether or not this update item is for macOS.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)deltaUpdates":{"name":"deltaUpdates","abstract":"

    The delta updates for this update item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)deltaUpdate":{"name":"deltaUpdate","abstract":"

    Indicates whether or not the update item is a delta update.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(py)propertiesDictionary":{"name":"propertiesDictionary","abstract":"

    The dictionary representing the entire appcast item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(cm)emptyAppcastItem":{"name":"+emptyAppcastItem","abstract":"

    An empty appcast item.

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)initWithDictionary:failureReason:":{"name":"-initWithDictionary:failureReason:","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcastItem.html#/c:objc(cs)SUAppcastItem(im)initWithDictionary:relativeToURL:failureReason:":{"name":"-initWithDictionary:relativeToURL:failureReason:","abstract":"

    Undocumented

    ","parent_name":"SUAppcastItem"},"Classes/SUAppcast.html#/c:objc(cs)SUAppcast(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SUAppcast"},"Classes/SUAppcast.html#/c:objc(cs)SUAppcast(py)items":{"name":"items","abstract":"

    The collection of update items.

    ","parent_name":"SUAppcast"},"Classes/SPUUserUpdateState.html#/c:objc(cs)SPUUserUpdateState(im)init":{"name":"-init","abstract":"

    Undocumented

    ","parent_name":"SPUUserUpdateState"},"Classes/SPUUserUpdateState.html#/c:objc(cs)SPUUserUpdateState(py)stage":{"name":"stage","abstract":"

    The current update stage.

    ","parent_name":"SPUUserUpdateState"},"Classes/SPUUserUpdateState.html#/c:objc(cs)SPUUserUpdateState(py)userInitiated":{"name":"userInitiated","abstract":"

    Indicates whether or not the update check was initiated by the user.

    ","parent_name":"SPUUserUpdateState"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(im)initWithHostBundle:":{"name":"-initWithHostBundle:","abstract":"

    Undocumented

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)automaticallyChecksForUpdates":{"name":"automaticallyChecksForUpdates","abstract":"

    Indicates whether or not automatic update checks are enabled.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)updateCheckInterval":{"name":"updateCheckInterval","abstract":"

    The regular update check interval.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)allowsAutomaticUpdates":{"name":"allowsAutomaticUpdates","abstract":"

    Indicates whether or not automatically downloading updates is allowed to be turned on by the user.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)automaticallyDownloadsUpdates":{"name":"automaticallyDownloadsUpdates","abstract":"

    Indicates whether or not automatically downloading updates is enabled by the user or developer.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdaterSettings.html#/c:objc(cs)SPUUpdaterSettings(py)sendsSystemProfile":{"name":"sendsSystemProfile","abstract":"

    Indicates whether or not anonymous system profile information is sent when checking for updates.

    ","parent_name":"SPUUpdaterSettings"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)initWithHostBundle:applicationBundle:userDriver:delegate:":{"name":"-initWithHostBundle:applicationBundle:userDriver:delegate:","abstract":"

    Initializes a new SPUUpdater instance

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)init":{"name":"-init","abstract":"

    Use -initWithHostBundle:applicationBundle:userDriver:delegate: or SPUStandardUpdaterController standard adapter instead.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)startUpdater:":{"name":"-startUpdater:","abstract":"

    Starts the updater.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)checkForUpdates":{"name":"-checkForUpdates","abstract":"

    Checks for updates, and displays progress while doing so if needed.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)checkForUpdatesInBackground":{"name":"-checkForUpdatesInBackground","abstract":"

    Checks for updates, but does not display any UI unless an update is found.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)checkForUpdateInformation":{"name":"-checkForUpdateInformation","abstract":"

    Begins a “probing” check for updates which will not actually offer to","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)canCheckForUpdates":{"name":"canCheckForUpdates","abstract":"

    A property indicating whether or not updates can be checked by the user.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)sessionInProgress":{"name":"sessionInProgress","abstract":"

    A property indicating whether or not an update session is in progress.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)automaticallyChecksForUpdates":{"name":"automaticallyChecksForUpdates","abstract":"

    A property indicating whether or not to check for updates automatically.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)updateCheckInterval":{"name":"updateCheckInterval","abstract":"

    A property indicating the current automatic update check interval in seconds.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)automaticallyDownloadsUpdates":{"name":"automaticallyDownloadsUpdates","abstract":"

    A property indicating whether or not updates can be automatically downloaded in the background.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)feedURL":{"name":"feedURL","abstract":"

    The URL of the appcast used to download update information.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)hostBundle":{"name":"hostBundle","abstract":"

    The host bundle that is being updated.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)userAgentString":{"name":"userAgentString","abstract":"

    The user agent used when checking for updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)httpHeaders":{"name":"httpHeaders","abstract":"

    The HTTP headers used when checking for updates, downloading release notes, and downloading updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)sendsSystemProfile":{"name":"sendsSystemProfile","abstract":"

    A property indicating whether or not the user’s system profile information is sent when checking for updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)lastUpdateCheckDate":{"name":"lastUpdateCheckDate","abstract":"

    The date of the last update check or nil if no check has been performed yet.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(im)resetUpdateCycle":{"name":"-resetUpdateCycle","abstract":"

    Appropriately schedules or cancels the update checking timer according to the preferences for time interval and automatic checks.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdater.html#/c:objc(cs)SPUUpdater(py)systemProfileArray":{"name":"systemProfileArray","abstract":"

    The system profile information that is sent when checking for updates.

    ","parent_name":"SPUUpdater"},"Classes/SPUUpdatePermissionRequest.html#/c:objc(cs)SPUUpdatePermissionRequest(im)initWithSystemProfile:":{"name":"-initWithSystemProfile:","abstract":"

    Initializes a new update permission request instance.

    ","parent_name":"SPUUpdatePermissionRequest"},"Classes/SPUUpdatePermissionRequest.html#/c:objc(cs)SPUUpdatePermissionRequest(py)systemProfile":{"name":"systemProfile","abstract":"

    A read-only property for the user’s system profile.

    ","parent_name":"SPUUpdatePermissionRequest"},"Classes/SPUStandardUserDriver.html#/c:objc(cs)SPUStandardUserDriver(im)initWithHostBundle:delegate:":{"name":"-initWithHostBundle:delegate:","abstract":"

    Initializes a Sparkle’s standard user driver for user update interactions

    ","parent_name":"SPUStandardUserDriver"},"Classes/SPUStandardUserDriver.html#/c:objc(cs)SPUStandardUserDriver(im)init":{"name":"-init","abstract":"

    Use initWithHostBundle:delegate: instead.

    ","parent_name":"SPUStandardUserDriver"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController@updaterDelegate":{"name":"updaterDelegate","abstract":"

    Interface builder outlet for the updater’s delegate.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController@userDriverDelegate":{"name":"userDriverDelegate","abstract":"

    Interface builder outlet for the user driver’s delegate.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(py)updater":{"name":"updater","abstract":"

    Accessible property for the updater. Some properties on the updater can be binded via KVO

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(py)userDriver":{"name":"userDriver","abstract":"

    Accessible property for the updater’s user driver.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)init":{"name":"-init","abstract":"

    Create a new SPUStandardUpdaterController from a nib.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)initWithUpdaterDelegate:userDriverDelegate:":{"name":"-initWithUpdaterDelegate:userDriverDelegate:","abstract":"

    Create a new SPUStandardUpdaterController programmatically.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)initWithStartingUpdater:updaterDelegate:userDriverDelegate:":{"name":"-initWithStartingUpdater:updaterDelegate:userDriverDelegate:","abstract":"

    Create a new SPUStandardUpdaterController programmatically allowing you to specify whether or not to start the updater immediately.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)startUpdater":{"name":"-startUpdater","abstract":"

    Starts the updater if it has not already been started.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUStandardUpdaterController.html#/c:objc(cs)SPUStandardUpdaterController(im)checkForUpdates:":{"name":"-checkForUpdates:","abstract":"

    Explicitly checks for updates and displays a progress dialog while doing so.

    ","parent_name":"SPUStandardUpdaterController"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)data":{"name":"data","abstract":"

    The raw data that was downloaded.

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)URL":{"name":"URL","abstract":"

    The URL that was fetched from.

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)textEncodingName":{"name":"textEncodingName","abstract":"

    The IANA charset encoding name if available. Eg: “utf-8”

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html#/c:objc(cs)SPUDownloadData(py)MIMEType":{"name":"MIMEType","abstract":"

    The MIME type if available. Eg: “text/plain”

    ","parent_name":"SPUDownloadData"},"Classes/SPUDownloadData.html":{"name":"SPUDownloadData","abstract":"

    A class for containing downloaded data along with some information about it.

    "},"Classes/SPUStandardUpdaterController.html":{"name":"SPUStandardUpdaterController","abstract":"

    A controller class that instantiates a SPUUpdater and allows binding UI to its updater settings.

    "},"Classes/SPUStandardUserDriver.html":{"name":"SPUStandardUserDriver","abstract":"

    Sparkle’s standard built-in user driver for updater interactions

    "},"Classes/SPUUpdatePermissionRequest.html":{"name":"SPUUpdatePermissionRequest","abstract":"

    This class represents information needed to make a permission request for checking updates.

    "},"Classes/SPUUpdater.html":{"name":"SPUUpdater","abstract":"

    The main API in Sparkle for controlling the update mechanism.

    "},"Classes/SPUUpdaterSettings.html":{"name":"SPUUpdaterSettings","abstract":"

    This class can be used for reading certain updater settings.

    "},"Classes/SPUUserUpdateState.html":{"name":"SPUUserUpdateState","abstract":"

    This represents the user’s current update state.

    "},"Classes/SUAppcast.html":{"name":"SUAppcast","abstract":"

    The appcast representing a collection of SUAppcastItem items in the feed.

    "},"Classes/SUAppcastItem.html":{"name":"SUAppcastItem","abstract":"

    The appcast item describing an update in the application’s appcast feed.

    "},"Classes/SUStandardVersionComparator.html":{"name":"SUStandardVersionComparator","abstract":"

    Sparkle’s default version comparator.

    "},"Classes/SUUpdatePermissionResponse.html":{"name":"SUUpdatePermissionResponse","abstract":"

    This class represents a response for permission to check updates.

    "},"Classes/SUUpdater.html":{"name":"SUUpdater","abstract":"

    The legacy API in Sparkle for controlling the update mechanism.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Constants.html":{"name":"Constants","abstract":"

    The following constants are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "}} \ No newline at end of file diff --git a/documentation/api-reference/undocumented.json b/documentation/api-reference/undocumented.json index f586125..01d8e5f 100644 --- a/documentation/api-reference/undocumented.json +++ b/documentation/api-reference/undocumented.json @@ -135,25 +135,39 @@ }, { "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SPUUserDriver.h", - "line": 283, + "line": 275, "symbol": "SPUUserDriver.-showUpdateNotFoundWithAcknowledgement:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SPUUserDriver.h", - "line": 285, + "line": 277, "symbol": "SPUUserDriver.-showUpdateInstallationDidFinishWithAcknowledgement:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SPUUserDriver.h", - "line": 287, + "line": 279, "symbol": "SPUUserDriver.-dismissUserInitiatedUpdateCheck", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, + { + "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SPUUserDriver.h", + "line": 281, + "symbol": "SPUUserDriver.-showInstallingUpdate", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SPUUserDriver.h", + "line": 283, + "symbol": "SPUUserDriver.-showSendingTerminationSignal", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, { "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SPUUserUpdateState.h", "line": 66, @@ -170,28 +184,28 @@ }, { "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SUAppcastItem.h", - "line": 343, + "line": 358, "symbol": "SUAppcastItem.-init", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SUAppcastItem.h", - "line": 353, + "line": 368, "symbol": "SUAppcastItem.-initWithDictionary:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SUAppcastItem.h", - "line": 354, + "line": 369, "symbol": "SUAppcastItem.-initWithDictionary:failureReason:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SUAppcastItem.h", - "line": 355, + "line": 370, "symbol": "SUAppcastItem.-initWithDictionary:relativeToURL:failureReason:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented"