From 8fdc05d8895569bc8082579cb2ff763e596fa529 Mon Sep 17 00:00:00 2001 From: Sparkle-Bot Date: Mon, 13 Jun 2022 05:43:21 +0000 Subject: [PATCH] Update API documentation --- .../Classes/SPUDownloadData.html | 6 +- .../Classes/SPUStandardUpdaterController.html | 6 +- .../Classes/SPUStandardUserDriver.html | 6 +- .../Classes/SPUUpdatePermissionRequest.html | 6 +- .../api-reference/Classes/SPUUpdater.html | 6 +- .../Classes/SPUUpdaterSettings.html | 6 +- .../Classes/SPUUserUpdateState.html | 6 +- .../api-reference/Classes/SUAppcast.html | 6 +- .../api-reference/Classes/SUAppcastItem.html | 12 +- .../Classes/SUStandardVersionComparator.html | 6 +- .../Classes/SUUpdatePermissionResponse.html | 6 +- .../api-reference/Classes/SUUpdater.html | 6 +- documentation/api-reference/Constants.html | 6 +- documentation/api-reference/Enums.html | 8 +- .../Enums/SPUNoUpdateFoundReason.html | 6 +- .../api-reference/Enums/SPUUpdateCheck.html | 6 +- .../Enums/SPUUserUpdateChoice.html | 6 +- .../Enums/SPUUserUpdateStage.html | 6 +- .../api-reference/Enums/SUError.html | 72 +++- documentation/api-reference/Protocols.html | 6 +- .../SPUStandardUserDriverDelegate.html | 381 +++++++++++++++++- .../Protocols/SPUUpdaterDelegate.html | 6 +- .../Protocols/SPUUserDriver.html | 6 +- .../Protocols/SUUpdaterDelegate.html | 6 +- .../Protocols/SUVersionComparison.html | 6 +- .../Protocols/SUVersionDisplay.html | 6 +- documentation/api-reference/classes.html | 6 +- .../Documents/Classes/SPUDownloadData.html | 6 +- .../Classes/SPUStandardUpdaterController.html | 6 +- .../Classes/SPUStandardUserDriver.html | 6 +- .../Classes/SPUUpdatePermissionRequest.html | 6 +- .../Documents/Classes/SPUUpdater.html | 6 +- .../Documents/Classes/SPUUpdaterSettings.html | 6 +- .../Documents/Classes/SPUUserUpdateState.html | 6 +- .../Documents/Classes/SUAppcast.html | 6 +- .../Documents/Classes/SUAppcastItem.html | 12 +- .../Classes/SUStandardVersionComparator.html | 6 +- .../Classes/SUUpdatePermissionResponse.html | 6 +- .../Documents/Classes/SUUpdater.html | 6 +- .../Resources/Documents/Constants.html | 6 +- .../Contents/Resources/Documents/Enums.html | 8 +- .../Enums/SPUNoUpdateFoundReason.html | 6 +- .../Documents/Enums/SPUUpdateCheck.html | 6 +- .../Documents/Enums/SPUUserUpdateChoice.html | 6 +- .../Documents/Enums/SPUUserUpdateStage.html | 6 +- .../Resources/Documents/Enums/SUError.html | 72 +++- .../Resources/Documents/Protocols.html | 6 +- .../SPUStandardUserDriverDelegate.html | 381 +++++++++++++++++- .../Protocols/SPUUpdaterDelegate.html | 6 +- .../Documents/Protocols/SPUUserDriver.html | 6 +- .../Protocols/SUUpdaterDelegate.html | 6 +- .../Protocols/SUVersionComparison.html | 6 +- .../Documents/Protocols/SUVersionDisplay.html | 6 +- .../Contents/Resources/Documents/classes.html | 6 +- .../Contents/Resources/Documents/index.html | 6 +- .../Contents/Resources/Documents/search.json | 2 +- .../Contents/Resources/docSet.dsidx | Bin 90112 -> 90112 bytes .../api-reference/docsets/Sparkle.tgz | Bin 124737 -> 129402 bytes documentation/api-reference/index.html | 6 +- documentation/api-reference/search.json | 2 +- documentation/api-reference/undocumented.json | 30 +- 61 files changed, 1082 insertions(+), 186 deletions(-) diff --git a/documentation/api-reference/Classes/SPUDownloadData.html b/documentation/api-reference/Classes/SPUDownloadData.html index a00a7fd..097bbeb 100644 --- a/documentation/api-reference/Classes/SPUDownloadData.html +++ b/documentation/api-reference/Classes/SPUDownloadData.html @@ -16,7 +16,7 @@

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

@@ -546,8 +546,8 @@ 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 1948e54..8181b66 100644 --- a/documentation/api-reference/Classes/SPUStandardUserDriver.html +++ b/documentation/api-reference/Classes/SPUStandardUserDriver.html @@ -16,7 +16,7 @@

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

@@ -1062,8 +1062,8 @@ 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 08ec18c..8d5c076 100644 --- a/documentation/api-reference/Classes/SPUUpdaterSettings.html +++ b/documentation/api-reference/Classes/SPUUpdaterSettings.html @@ -16,7 +16,7 @@

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

@@ -422,8 +422,8 @@ 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 393686b..23cd0ae 100644 --- a/documentation/api-reference/Classes/SPUUserUpdateState.html +++ b/documentation/api-reference/Classes/SPUUserUpdateState.html @@ -16,7 +16,7 @@

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

@@ -125,17 +125,19 @@ All the remaining properties describing an update to the application are optiona

This is extracted from the <sparkle:shortVersionString> element, or the sparkle:shortVersionString attribute from the <enclosure> element.

+

If no short version string is available, this falls back to the update’s versionString.

+

Declaration

Objective-C

-
@property (copy, readonly, nullable) NSString *displayVersionString;
+
@property (copy, readonly) NSString *_Nonnull displayVersionString;

Swift

-
var displayVersionString: String? { get }
+
var displayVersionString: String { get }
@@ -1476,8 +1478,8 @@ 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 289f645..45e100e 100644 --- a/documentation/api-reference/Classes/SUStandardVersionComparator.html +++ b/documentation/api-reference/Classes/SUStandardVersionComparator.html @@ -16,7 +16,7 @@

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

@@ -364,8 +364,8 @@ 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 c2e77c0..131a3b3 100644 --- a/documentation/api-reference/Classes/SUUpdatePermissionResponse.html +++ b/documentation/api-reference/Classes/SUUpdatePermissionResponse.html @@ -16,7 +16,7 @@

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

@@ -203,6 +203,8 @@ SUInstallationAuthorizeLaterError = 4008, SUNotValidUpdateError = 4009, SUAgentInvalidationError = 4010, + SUInstallationRootInteractiveError = 4011, + SUInstallationWriteNoPermissionError = 4012, // API misuse errors. SUIncorrectAPIUsageError = 5000 @@ -417,8 +419,8 @@
diff --git a/documentation/api-reference/Enums/SPUNoUpdateFoundReason.html b/documentation/api-reference/Enums/SPUNoUpdateFoundReason.html index 366b0dd..8b993b6 100644 --- a/documentation/api-reference/Enums/SPUNoUpdateFoundReason.html +++ b/documentation/api-reference/Enums/SPUNoUpdateFoundReason.html @@ -16,7 +16,7 @@

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

- Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

@@ -83,6 +83,8 @@ SUInstallationAuthorizeLaterError = 4008, SUNotValidUpdateError = 4009, SUAgentInvalidationError = 4010, + SUInstallationRootInteractiveError = 4011, + SUInstallationWriteNoPermissionError = 4012, // API misuse errors. SUIncorrectAPIUsageError = 5000 @@ -1061,6 +1063,70 @@
+
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SUInstallationRootInteractiveError = 4011
    + +
    +
    +

    Swift

    +
    case installationRootInteractiveError = 4011
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SUInstallationWriteNoPermissionError = 4012
    + +
    +
    +

    Swift

    +
    case installationWriteNoPermissionError = 4012
    + +
    +
    +
    +
    +
  • @@ -1259,8 +1325,8 @@
    diff --git a/documentation/api-reference/Protocols.html b/documentation/api-reference/Protocols.html index 81dabfd..0b9474d 100644 --- a/documentation/api-reference/Protocols.html +++ b/documentation/api-reference/Protocols.html @@ -16,7 +16,7 @@

    - Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -422,8 +422,8 @@ 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 b8aff35..b76e164 100644 --- a/documentation/api-reference/Protocols/SPUStandardUserDriverDelegate.html +++ b/documentation/api-reference/Protocols/SPUStandardUserDriverDelegate.html @@ -16,7 +16,7 @@

    - Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -184,12 +184,12 @@ A delegate may want to implement this method if they want to show in-app or offl

    Objective-C

    - (void)standardUserDriverShowVersionHistoryForAppcastItem:
    -    (SUAppcastItem *_Nonnull)item;
    + (nonnull SUAppcastItem *)item;

    Swift

    -
    optional func standardUserDriverShowVersionHistory(forAppcastItem item: Any!)
    +
    optional func standardUserDriverShowVersionHistory(for item: SUAppcastItem)
    @@ -215,6 +215,377 @@ A delegate may want to implement this method if they want to show in-app or offl
  • +
  • + +
    +
    +
    +
    +
    +

    Specifies whether or not the download, extraction, and installing status windows allows to be minimized.

    + +

    By default, the status window showing the current status of the update (download, extraction, ready to install) is allowed to be minimized +for regular application bundle updates.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)standardUserDriverAllowsMinimizableStatusWindow;
    + +
    +
    +

    Swift

    +
    optional func standardUserDriverAllowsMinimizableStatusWindow() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    YES if the status window is allowed to be minimized (default behavior), otherwise NO.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Declares whether or not gentle scheduled update reminders are supported.

    + +

    The delegate may implement scheduled update reminders that are presented in a gentle manner by implementing one or both of: +-standardUserDriverWillShowUpdate:state: and -standardUserDriverShouldHandleShowingUpdateAlertForScheduledUpdate:andInImmediateFocus:

    + +

    Visit https://sparkle-project.org/documentation/gentle-reminders for more information and examples.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @optional
    +@property (nonatomic, readonly) BOOL supportsGentleScheduledUpdateReminders;
    + +
    +
    +

    Swift

    +
    optional var supportsGentleScheduledUpdateReminders: Bool { get }
    + +
    +
    +
    +

    Return Value

    +

    YES if gentle scheduled update reminders are implemented by standard user driver delegate, otherwise NO (default).

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Specifies if the standard user driver should handle showing a new scheduled update, or if its delegate should handle showing the update instead.

    + +

    If you implement this method and return NO the delegate is then responsible for showing the update, +which must be implemented and done in -standardUserDriverWillHandleShowingUpdate:forUpdate:state: +The motivation for the delegate being responsible for showing updates is to override Sparkle’s default behavior +and add gentle reminders for new updates.

    + +

    Returning YES is the default behavior and allows the standard user driver to handle showing the update.

    + +

    If the standard user driver handles showing the update, immediateFocus reflects whether or not it will show the update in immediate and utmost focus. +The standard user driver may choose to show the update in immediate and utmost focus when the app was launched recently +or the system has been idle for some time. If immediateFocus is NO the standard user driver may want to +defer showing the update until the user comes back to the app. +For background running applications, when immediateFocus is NO the standard user driver will always want to show +the update alert immediately, but behind other running applications or behind the app’s own windows if it’s currently active.

    + +

    There should be no side effects made when implementing this method so you should just return YES or NO +You will also want to implement -standardUserDriverWillHandleShowingUpdate:forUpdate:state: for adding additional update reminders.

    + +

    This method is not called for user-initiated update checks. The standard user driver always handles those.

    + +

    Visit https://sparkle-project.org/documentation/gentle-reminders for more information and examples.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)standardUserDriverShouldHandleShowingScheduledUpdate:
    +            (nonnull SUAppcastItem *)update
    +                                         andInImmediateFocus:
    +                                             (BOOL)immediateFocus;
    + +
    +
    +

    Swift

    +
    optional func standardUserDriverShouldHandleShowingScheduledUpdate(_ update: SUAppcastItem, andInImmediateFocus immediateFocus: Bool) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + update + + +
    +

    The update the standard user driver should show.

    +
    +
    + + immediateFocus + + +
    +

    If immediateFocus is YES, then the standard user driver proposes to show the update in immediate and utmost focus. See discussion for more details.

    +
    +
    +
    +
    +

    Return Value

    +

    YES if the standard user should handle showing the scheduled update (default behavior), otherwise NO if the delegate handles showing it.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called before an update will be shown to the user.

    + +

    If the standard user driver handles showing the update, handleShowingUpdate will be YES +In this case, if the update is not user initiated (state.userInitiated is NO) then the standard user driver may defer showing the update, +and it may be shown when the user comes back to the app. +For a background (dockless) running app, the update alert will always show up immediately but behind other running applications or behind +its own windows if the app is currently active.

    + +

    If the delegate declared it handles showing the update by returning NO in -standardUserDriverShouldHandleShowingScheduledUpdate:andInImmediateFocus: +then the delegate should handle showing update reminders in this method, or at some later point. +In this case, handleShowingUpdate will be NO. +To bring the update alert in focus, you may call -[SPUStandardUpdateController checkForUpdates:] or -[SPUUpdater checkForUpdates] +You may want to show additional UI indicators in your application that will show this update in focus +and want to dismiss additional UI indicators in -standardUserDriverWillFinishUpdateSession or -standardUserDriverDidReceiveUserAttentionForUpdate:

    + +

    If state.userInitiated is YES then the standard user driver always handles showing the new update and handleShowingUpdate will be YES. +In this case, it may still be useful for the delegate to intercept this method right before a new update will be shown.

    + +

    This method is not called when bringing an update that has already been presented back in focus.

    + +

    Visit https://sparkle-project.org/documentation/gentle-reminders for more information and examples.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)
    +    standardUserDriverWillHandleShowingUpdate:(BOOL)handleShowingUpdate
    +                                    forUpdate:(nonnull SUAppcastItem *)update
    +                                        state:
    +                                            (nonnull SPUUserUpdateState *)state;
    + +
    +
    +

    Swift

    +
    optional func standardUserDriverWillHandleShowingUpdate(_ handleShowingUpdate: Bool, forUpdate update: SUAppcastItem, state: SPUUserUpdateState)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + handleShowingUpdate + + +
    +

    YES if the standard user driver handles showing the update, otherwise NO if the delegate handles showing the update.

    +
    +
    + + update + + +
    +

    The update that will be shown.

    +
    +
    + + state + + +
    +

    The user state of the update which includes if the update check was initiated by the user.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when a new update first receives attention from the user.

    + +

    This occurs either when the user first brings the update alert in utmost focus or when the user makes a choice to install an update or dismiss/skip it.

    + +

    This may be useful to intercept for dismissing custom attention-based UI indicators (e.g, user notifications) introduced when implementing +-standardUserDriverShouldHandleShowingScheduledUpdate:andInImmediateFocus:

    + +

    For custom UI indicators that need to still be on screen after the user has started to install an update, please see standardUserDriverWillFinishUpdateSession.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)standardUserDriverDidReceiveUserAttentionForUpdate:
    +    (nonnull SUAppcastItem *)update;
    + +
    +
    +

    Swift

    +
    optional func standardUserDriverDidReceiveUserAttention(forUpdate update: SUAppcastItem)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + update + + +
    +

    The new update that the user gave attention to.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called before the standard user driver session will finish its current update session.

    + +

    This may occur after the user has dismissed / skipped a new update or after an update error has occurred. +For updaters updating external/other bundles, this may also be called after an update has been successfully installed.

    + +

    This may be useful to intercept for dismissing custom UI indicators introduced when implementing +-standardUserDriverShouldHandleShowingScheduledUpdate:andInImmediateFocus:

    + +

    For UI indicators that need to be dismissed when the user has given attention to a new update alert, +please see standardUserDriverDidReceiveUserAttentionForUpdate:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)standardUserDriverWillFinishUpdateSession;
    + +
    +
    +

    Swift

    +
    optional func standardUserDriverWillFinishUpdateSession()
    + +
    +
    +
    +
    +
  • @@ -381,8 +752,8 @@ 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 1d0d512..a7df9c0 100644 --- a/documentation/api-reference/Protocols/SPUUpdaterDelegate.html +++ b/documentation/api-reference/Protocols/SPUUpdaterDelegate.html @@ -16,7 +16,7 @@

    - Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -2376,8 +2376,8 @@ 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 64164e7..2743002 100644 --- a/documentation/api-reference/Protocols/SPUUserDriver.html +++ b/documentation/api-reference/Protocols/SPUUserDriver.html @@ -16,7 +16,7 @@

    - Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -1425,8 +1425,8 @@ It is up to the implementor whether or not to decide to continue showing install
    diff --git a/documentation/api-reference/Protocols/SUUpdaterDelegate.html b/documentation/api-reference/Protocols/SUUpdaterDelegate.html index 91c40bf..f32fcb2 100644 --- a/documentation/api-reference/Protocols/SUUpdaterDelegate.html +++ b/documentation/api-reference/Protocols/SUUpdaterDelegate.html @@ -16,7 +16,7 @@

    - Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

    - Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

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

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

    - Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -260,8 +260,8 @@ 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 87b619f..3587b2a 100644 --- a/documentation/api-reference/classes.html +++ b/documentation/api-reference/classes.html @@ -16,7 +16,7 @@

    - Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -663,8 +663,8 @@ 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 a00a7fd..097bbeb 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -354,8 +354,8 @@
    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 2213b2e..c3b5326 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -546,8 +546,8 @@ 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 1948e54..8181b66 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -315,8 +315,8 @@
    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 ffae0df..2019f57 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -308,8 +308,8 @@
    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 de1e69f..bdee7e3 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -1062,8 +1062,8 @@ 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 08ec18c..8d5c076 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -422,8 +422,8 @@ 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 393686b..23cd0ae 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -321,8 +321,8 @@
    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 b71b5d4..745894e 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -289,8 +289,8 @@
    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 beafe25..f88985e 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -125,17 +125,19 @@ All the remaining properties describing an update to the application are optiona

    This is extracted from the <sparkle:shortVersionString> element, or the sparkle:shortVersionString attribute from the <enclosure> element.

    +

    If no short version string is available, this falls back to the update’s versionString.

    +

    Declaration

    Objective-C

    -
    @property (copy, readonly, nullable) NSString *displayVersionString;
    +
    @property (copy, readonly) NSString *_Nonnull displayVersionString;

    Swift

    -
    var displayVersionString: String? { get }
    +
    var displayVersionString: String { get }
    @@ -1476,8 +1478,8 @@ 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 289f645..45e100e 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -364,8 +364,8 @@ 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 c2e77c0..131a3b3 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -383,8 +383,8 @@
    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 01c0e5f..6b76275 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -901,8 +901,8 @@
    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 98baf1e..23c90fc 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -884,8 +884,8 @@
    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 e4e3689..a84ebcb 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -203,6 +203,8 @@ SUInstallationAuthorizeLaterError = 4008, SUNotValidUpdateError = 4009, SUAgentInvalidationError = 4010, + SUInstallationRootInteractiveError = 4011, + SUInstallationWriteNoPermissionError = 4012, // API misuse errors. SUIncorrectAPIUsageError = 5000 @@ -417,8 +419,8 @@
    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 366b0dd..8b993b6 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -384,8 +384,8 @@
    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 fccf8c4..1af8d53 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -302,8 +302,8 @@
    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 040bacc..ca3bf98 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -320,8 +320,8 @@
    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 890ef9f..ccb162d 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -320,8 +320,8 @@
    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 6d74947..5087832 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -83,6 +83,8 @@ SUInstallationAuthorizeLaterError = 4008, SUNotValidUpdateError = 4009, SUAgentInvalidationError = 4010, + SUInstallationRootInteractiveError = 4011, + SUInstallationWriteNoPermissionError = 4012, // API misuse errors. SUIncorrectAPIUsageError = 5000 @@ -1061,6 +1063,70 @@
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SUInstallationRootInteractiveError = 4011
    + +
    +
    +

    Swift

    +
    case installationRootInteractiveError = 4011
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    SUInstallationWriteNoPermissionError = 4012
    + +
    +
    +

    Swift

    +
    case installationWriteNoPermissionError = 4012
    + +
    +
    +
    +
    +
  • @@ -1259,8 +1325,8 @@
    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 81dabfd..0b9474d 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -422,8 +422,8 @@ 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 b8aff35..b76e164 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -184,12 +184,12 @@ A delegate may want to implement this method if they want to show in-app or offl

    Objective-C

    - (void)standardUserDriverShowVersionHistoryForAppcastItem:
    -    (SUAppcastItem *_Nonnull)item;
    + (nonnull SUAppcastItem *)item;

    Swift

    -
    optional func standardUserDriverShowVersionHistory(forAppcastItem item: Any!)
    +
    optional func standardUserDriverShowVersionHistory(for item: SUAppcastItem)
    @@ -215,6 +215,377 @@ A delegate may want to implement this method if they want to show in-app or offl
  • +
  • + +
    +
    +
    +
    +
    +

    Specifies whether or not the download, extraction, and installing status windows allows to be minimized.

    + +

    By default, the status window showing the current status of the update (download, extraction, ready to install) is allowed to be minimized +for regular application bundle updates.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)standardUserDriverAllowsMinimizableStatusWindow;
    + +
    +
    +

    Swift

    +
    optional func standardUserDriverAllowsMinimizableStatusWindow() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    YES if the status window is allowed to be minimized (default behavior), otherwise NO.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Declares whether or not gentle scheduled update reminders are supported.

    + +

    The delegate may implement scheduled update reminders that are presented in a gentle manner by implementing one or both of: +-standardUserDriverWillShowUpdate:state: and -standardUserDriverShouldHandleShowingUpdateAlertForScheduledUpdate:andInImmediateFocus:

    + +

    Visit https://sparkle-project.org/documentation/gentle-reminders for more information and examples.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    @optional
    +@property (nonatomic, readonly) BOOL supportsGentleScheduledUpdateReminders;
    + +
    +
    +

    Swift

    +
    optional var supportsGentleScheduledUpdateReminders: Bool { get }
    + +
    +
    +
    +

    Return Value

    +

    YES if gentle scheduled update reminders are implemented by standard user driver delegate, otherwise NO (default).

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Specifies if the standard user driver should handle showing a new scheduled update, or if its delegate should handle showing the update instead.

    + +

    If you implement this method and return NO the delegate is then responsible for showing the update, +which must be implemented and done in -standardUserDriverWillHandleShowingUpdate:forUpdate:state: +The motivation for the delegate being responsible for showing updates is to override Sparkle’s default behavior +and add gentle reminders for new updates.

    + +

    Returning YES is the default behavior and allows the standard user driver to handle showing the update.

    + +

    If the standard user driver handles showing the update, immediateFocus reflects whether or not it will show the update in immediate and utmost focus. +The standard user driver may choose to show the update in immediate and utmost focus when the app was launched recently +or the system has been idle for some time. If immediateFocus is NO the standard user driver may want to +defer showing the update until the user comes back to the app. +For background running applications, when immediateFocus is NO the standard user driver will always want to show +the update alert immediately, but behind other running applications or behind the app’s own windows if it’s currently active.

    + +

    There should be no side effects made when implementing this method so you should just return YES or NO +You will also want to implement -standardUserDriverWillHandleShowingUpdate:forUpdate:state: for adding additional update reminders.

    + +

    This method is not called for user-initiated update checks. The standard user driver always handles those.

    + +

    Visit https://sparkle-project.org/documentation/gentle-reminders for more information and examples.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (BOOL)standardUserDriverShouldHandleShowingScheduledUpdate:
    +            (nonnull SUAppcastItem *)update
    +                                         andInImmediateFocus:
    +                                             (BOOL)immediateFocus;
    + +
    +
    +

    Swift

    +
    optional func standardUserDriverShouldHandleShowingScheduledUpdate(_ update: SUAppcastItem, andInImmediateFocus immediateFocus: Bool) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + update + + +
    +

    The update the standard user driver should show.

    +
    +
    + + immediateFocus + + +
    +

    If immediateFocus is YES, then the standard user driver proposes to show the update in immediate and utmost focus. See discussion for more details.

    +
    +
    +
    +
    +

    Return Value

    +

    YES if the standard user should handle showing the scheduled update (default behavior), otherwise NO if the delegate handles showing it.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called before an update will be shown to the user.

    + +

    If the standard user driver handles showing the update, handleShowingUpdate will be YES +In this case, if the update is not user initiated (state.userInitiated is NO) then the standard user driver may defer showing the update, +and it may be shown when the user comes back to the app. +For a background (dockless) running app, the update alert will always show up immediately but behind other running applications or behind +its own windows if the app is currently active.

    + +

    If the delegate declared it handles showing the update by returning NO in -standardUserDriverShouldHandleShowingScheduledUpdate:andInImmediateFocus: +then the delegate should handle showing update reminders in this method, or at some later point. +In this case, handleShowingUpdate will be NO. +To bring the update alert in focus, you may call -[SPUStandardUpdateController checkForUpdates:] or -[SPUUpdater checkForUpdates] +You may want to show additional UI indicators in your application that will show this update in focus +and want to dismiss additional UI indicators in -standardUserDriverWillFinishUpdateSession or -standardUserDriverDidReceiveUserAttentionForUpdate:

    + +

    If state.userInitiated is YES then the standard user driver always handles showing the new update and handleShowingUpdate will be YES. +In this case, it may still be useful for the delegate to intercept this method right before a new update will be shown.

    + +

    This method is not called when bringing an update that has already been presented back in focus.

    + +

    Visit https://sparkle-project.org/documentation/gentle-reminders for more information and examples.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)
    +    standardUserDriverWillHandleShowingUpdate:(BOOL)handleShowingUpdate
    +                                    forUpdate:(nonnull SUAppcastItem *)update
    +                                        state:
    +                                            (nonnull SPUUserUpdateState *)state;
    + +
    +
    +

    Swift

    +
    optional func standardUserDriverWillHandleShowingUpdate(_ handleShowingUpdate: Bool, forUpdate update: SUAppcastItem, state: SPUUserUpdateState)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + handleShowingUpdate + + +
    +

    YES if the standard user driver handles showing the update, otherwise NO if the delegate handles showing the update.

    +
    +
    + + update + + +
    +

    The update that will be shown.

    +
    +
    + + state + + +
    +

    The user state of the update which includes if the update check was initiated by the user.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when a new update first receives attention from the user.

    + +

    This occurs either when the user first brings the update alert in utmost focus or when the user makes a choice to install an update or dismiss/skip it.

    + +

    This may be useful to intercept for dismissing custom attention-based UI indicators (e.g, user notifications) introduced when implementing +-standardUserDriverShouldHandleShowingScheduledUpdate:andInImmediateFocus:

    + +

    For custom UI indicators that need to still be on screen after the user has started to install an update, please see standardUserDriverWillFinishUpdateSession.

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)standardUserDriverDidReceiveUserAttentionForUpdate:
    +    (nonnull SUAppcastItem *)update;
    + +
    +
    +

    Swift

    +
    optional func standardUserDriverDidReceiveUserAttention(forUpdate update: SUAppcastItem)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + update + + +
    +

    The new update that the user gave attention to.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called before the standard user driver session will finish its current update session.

    + +

    This may occur after the user has dismissed / skipped a new update or after an update error has occurred. +For updaters updating external/other bundles, this may also be called after an update has been successfully installed.

    + +

    This may be useful to intercept for dismissing custom UI indicators introduced when implementing +-standardUserDriverShouldHandleShowingScheduledUpdate:andInImmediateFocus:

    + +

    For UI indicators that need to be dismissed when the user has given attention to a new update alert, +please see standardUserDriverDidReceiveUserAttentionForUpdate:

    + +
    +
    +

    Declaration

    +
    +

    Objective-C

    +
    - (void)standardUserDriverWillFinishUpdateSession;
    + +
    +
    +

    Swift

    +
    optional func standardUserDriverWillFinishUpdateSession()
    + +
    +
    +
    +
    +
  • @@ -381,8 +752,8 @@ 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 1d0d512..a7df9c0 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -2376,8 +2376,8 @@ 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 64164e7..2743002 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -1425,8 +1425,8 @@ It is up to the implementor whether or not to decide to continue showing install
    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 91c40bf..f32fcb2 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -1210,8 +1210,8 @@
    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 cfb4489..e6e4f21 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -260,8 +260,8 @@ 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 4e7dbfb..c49e344 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -260,8 +260,8 @@ 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 87b619f..3587b2a 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -663,8 +663,8 @@ 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 b2e6ad9..511c57e 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.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -218,8 +218,8 @@
    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 97f4792..83e6767 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)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 +{"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#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverAllowsMinimizableStatusWindow":{"name":"-standardUserDriverAllowsMinimizableStatusWindow","abstract":"

    Specifies whether or not the download, extraction, and installing status windows allows to be minimized.

    ","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(py)supportsGentleScheduledUpdateReminders":{"name":"supportsGentleScheduledUpdateReminders","abstract":"

    Declares whether or not gentle scheduled update reminders are supported.

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

    Specifies if the standard user driver should handle showing a new scheduled update, or if its delegate should handle showing the update instead.

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

    Called before an update will be shown to the user.

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

    Called when a new update first receives attention from the user.

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

    Called before the standard user driver session will finish its current update session.

    ","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@SUInstallationRootInteractiveError":{"name":"SUInstallationRootInteractiveError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationWriteNoPermissionError":{"name":"SUInstallationWriteNoPermissionError","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 6a2cb08738ab63251915eb3e07550b90699b6f63..9d96c77652d55bdab5885c0abe3c9e61b9ffcb55 100644 GIT binary patch delta 7682 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 lQ^r)oP9`cQDQ_!L^1N;J0QKZ4;Na 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 diff --git a/documentation/api-reference/docsets/Sparkle.tgz b/documentation/api-reference/docsets/Sparkle.tgz index 1bbbea26a97ca00ae6c73203f5e9b55c10261c43..23220ed2483674c7093291eb268e1f67f9ac3c0a 100644 GIT binary patch literal 129402 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

    v)4Ls&AUd>+VDgBmzZkGliZ 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̐}F7oU^@&D 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

    - Sparkle 2.1.0 Docs + Sparkle 2.2.0-beta.1 Docs (58% documented)

    @@ -218,8 +218,8 @@
    diff --git a/documentation/api-reference/search.json b/documentation/api-reference/search.json index 97f4792..83e6767 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)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 +{"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#/c:objc(pl)SPUStandardUserDriverDelegate(im)standardUserDriverAllowsMinimizableStatusWindow":{"name":"-standardUserDriverAllowsMinimizableStatusWindow","abstract":"

    Specifies whether or not the download, extraction, and installing status windows allows to be minimized.

    ","parent_name":"SPUStandardUserDriverDelegate"},"Protocols/SPUStandardUserDriverDelegate.html#/c:objc(pl)SPUStandardUserDriverDelegate(py)supportsGentleScheduledUpdateReminders":{"name":"supportsGentleScheduledUpdateReminders","abstract":"

    Declares whether or not gentle scheduled update reminders are supported.

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

    Specifies if the standard user driver should handle showing a new scheduled update, or if its delegate should handle showing the update instead.

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

    Called before an update will be shown to the user.

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

    Called when a new update first receives attention from the user.

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

    Called before the standard user driver session will finish its current update session.

    ","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@SUInstallationRootInteractiveError":{"name":"SUInstallationRootInteractiveError","abstract":"

    Undocumented

    ","parent_name":"SUError"},"Enums/SUError.html#/c:@E@SUError@SUInstallationWriteNoPermissionError":{"name":"SUInstallationWriteNoPermissionError","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 01d8e5f..411df97 100644 --- a/documentation/api-reference/undocumented.json +++ b/documentation/api-reference/undocumented.json @@ -184,28 +184,28 @@ }, { "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SUAppcastItem.h", - "line": 358, + "line": 360, "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": 368, + "line": 370, "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": 369, + "line": 371, "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": 370, + "line": 372, "symbol": "SUAppcastItem.-initWithDictionary:relativeToURL:failureReason:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" @@ -436,28 +436,42 @@ }, { "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SUErrors.h", - "line": 78, + "line": 76, + "symbol": "SUError.SUInstallationRootInteractiveError", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SUErrors.h", + "line": 77, + "symbol": "SUError.SUInstallationWriteNoPermissionError", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SUErrors.h", + "line": 80, "symbol": "SUError.SUIncorrectAPIUsageError", "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SUErrors.h", - "line": 107, + "line": 109, "symbol": "SPUNoUpdateFoundReasonKey", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SUErrors.h", - "line": 108, + "line": 110, "symbol": "SPULatestAppcastItemFoundKey", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/runner/work/sparkle-project.github.io/sparkle-project.github.io/sparkle-source/Sparkle/SUErrors.h", - "line": 109, + "line": 111, "symbol": "SPUNoUpdateFoundUserInitiatedKey", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented"