Files
sparkle-project.github.io/documentation/api-reference/interface_s_p_u_updater.html
T
2021-09-03 19:38:30 -07:00

646 lines
41 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Sparkle: SPUUpdater Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="icon_32x32@2x.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Sparkle
&#160;<span id="projectnumber">2.0.0</span>
</div>
<div id="projectbrief">A software update framework for macOS</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Instance Methods</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="interface_s_p_u_updater-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">SPUUpdater Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>The main API in Sparkle for controlling the update mechanism.
<a href="interface_s_p_u_updater.html#details">More...</a></p>
<p><code>#import &lt;<a class="el" href="_s_p_u_updater_8h_source.html">SPUUpdater.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for SPUUpdater:</div>
<div class="dyncontent">
<div class="center">
<img src="interface_s_p_u_updater.png" alt=""/>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Instance Methods</h2></td></tr>
<tr class="memitem:aed247e3fde0667e50b8d2345e84033e1"><td class="memItemLeft" align="right" valign="top">(instancetype)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_s_p_u_updater.html#aed247e3fde0667e50b8d2345e84033e1">initWithHostBundle:applicationBundle:userDriver:delegate:</a></td></tr>
<tr class="memdesc:aed247e3fde0667e50b8d2345e84033e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new <a class="el" href="interface_s_p_u_updater.html" title="The main API in Sparkle for controlling the update mechanism.">SPUUpdater</a> instance. <a href="interface_s_p_u_updater.html#aed247e3fde0667e50b8d2345e84033e1">More...</a><br /></td></tr>
<tr class="separator:aed247e3fde0667e50b8d2345e84033e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2907583983833ce9f09bee2867d7654"><td class="memItemLeft" align="right" valign="top">(instancetype)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_s_p_u_updater.html#ac2907583983833ce9f09bee2867d7654">NS_UNAVAILABLE</a></td></tr>
<tr class="memdesc:ac2907583983833ce9f09bee2867d7654"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use -initWithHostBundle:applicationBundle:userDriver:delegate: or <a class="el" href="interface_s_p_u_standard_updater_controller.html" title="A controller class that instantiates a SPUUpdater and allows binding UI to it.">SPUStandardUpdaterController</a> standard adapter instead. <a href="interface_s_p_u_updater.html#ac2907583983833ce9f09bee2867d7654">More...</a><br /></td></tr>
<tr class="separator:ac2907583983833ce9f09bee2867d7654"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30c0f163e0fbc7b100f84c64b491b353"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_s_p_u_updater.html#a30c0f163e0fbc7b100f84c64b491b353">startUpdater:</a></td></tr>
<tr class="memdesc:a30c0f163e0fbc7b100f84c64b491b353"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts the updater. <a href="interface_s_p_u_updater.html#a30c0f163e0fbc7b100f84c64b491b353">More...</a><br /></td></tr>
<tr class="separator:a30c0f163e0fbc7b100f84c64b491b353"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7df56bb150d327beb72b7b050799790d"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_s_p_u_updater.html#a7df56bb150d327beb72b7b050799790d">checkForUpdates</a></td></tr>
<tr class="memdesc:a7df56bb150d327beb72b7b050799790d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks for updates, and displays progress while doing so if needed. <a href="interface_s_p_u_updater.html#a7df56bb150d327beb72b7b050799790d">More...</a><br /></td></tr>
<tr class="separator:a7df56bb150d327beb72b7b050799790d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e1e3ca715f29bae7ee0b16e15e34850"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_s_p_u_updater.html#a2e1e3ca715f29bae7ee0b16e15e34850">checkForUpdatesInBackground</a></td></tr>
<tr class="memdesc:a2e1e3ca715f29bae7ee0b16e15e34850"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks for updates, but does not display any UI unless an update is found. <a href="interface_s_p_u_updater.html#a2e1e3ca715f29bae7ee0b16e15e34850">More...</a><br /></td></tr>
<tr class="separator:a2e1e3ca715f29bae7ee0b16e15e34850"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad38751e23aa42be220206e7e671c697d"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_s_p_u_updater.html#ad38751e23aa42be220206e7e671c697d">checkForUpdateInformation</a></td></tr>
<tr class="memdesc:ad38751e23aa42be220206e7e671c697d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begins a "probing" check for updates which will not actually offer to update to that version. <a href="interface_s_p_u_updater.html#ad38751e23aa42be220206e7e671c697d">More...</a><br /></td></tr>
<tr class="separator:ad38751e23aa42be220206e7e671c697d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfaabdc767d7a7668c8e472e45abd635"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_s_p_u_updater.html#adfaabdc767d7a7668c8e472e45abd635">setFeedURL:</a></td></tr>
<tr class="memdesc:adfaabdc767d7a7668c8e472e45abd635"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the URL of the appcast used to download update information. <a href="interface_s_p_u_updater.html#adfaabdc767d7a7668c8e472e45abd635">More...</a><br /></td></tr>
<tr class="separator:adfaabdc767d7a7668c8e472e45abd635"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefe1e7f5ae5b8e02f1d7beab189b51af"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_s_p_u_updater.html#aefe1e7f5ae5b8e02f1d7beab189b51af">resetUpdateCycle</a></td></tr>
<tr class="memdesc:aefe1e7f5ae5b8e02f1d7beab189b51af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appropriately schedules or cancels the update checking timer according to the preferences for time interval and automatic checks. <a href="interface_s_p_u_updater.html#aefe1e7f5ae5b8e02f1d7beab189b51af">More...</a><br /></td></tr>
<tr class="separator:aefe1e7f5ae5b8e02f1d7beab189b51af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:aa8ec4e87308007ae49228165534e683c"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_s_p_u_updater.html#aa8ec4e87308007ae49228165534e683c">canCheckForUpdates</a></td></tr>
<tr class="memdesc:aa8ec4e87308007ae49228165534e683c"><td class="mdescLeft">&#160;</td><td class="mdescRight">A property indicating whether or not updates can be checked by the user. <a href="interface_s_p_u_updater.html#aa8ec4e87308007ae49228165534e683c">More...</a><br /></td></tr>
<tr class="separator:aa8ec4e87308007ae49228165534e683c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebc820be90ea36d0d97c6f11e80f3a4f"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_s_p_u_updater.html#aebc820be90ea36d0d97c6f11e80f3a4f">sessionInProgress</a></td></tr>
<tr class="memdesc:aebc820be90ea36d0d97c6f11e80f3a4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">A property indicating whether or not an update session is in progress. <a href="interface_s_p_u_updater.html#aebc820be90ea36d0d97c6f11e80f3a4f">More...</a><br /></td></tr>
<tr class="separator:aebc820be90ea36d0d97c6f11e80f3a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a154002bdbe3306e763d000502a0980"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_s_p_u_updater.html#a9a154002bdbe3306e763d000502a0980">automaticallyChecksForUpdates</a></td></tr>
<tr class="memdesc:a9a154002bdbe3306e763d000502a0980"><td class="mdescLeft">&#160;</td><td class="mdescRight">A property indicating whether or not to check for updates automatically. <a href="interface_s_p_u_updater.html#a9a154002bdbe3306e763d000502a0980">More...</a><br /></td></tr>
<tr class="separator:a9a154002bdbe3306e763d000502a0980"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b2a4bc575d1f9de57e189ca93bda22a"><td class="memItemLeft" align="right" valign="top">NSTimeInterval&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_s_p_u_updater.html#a1b2a4bc575d1f9de57e189ca93bda22a">updateCheckInterval</a></td></tr>
<tr class="memdesc:a1b2a4bc575d1f9de57e189ca93bda22a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A property indicating the current automatic update check interval. <a href="interface_s_p_u_updater.html#a1b2a4bc575d1f9de57e189ca93bda22a">More...</a><br /></td></tr>
<tr class="separator:a1b2a4bc575d1f9de57e189ca93bda22a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5f5578c29e6496cb90546aca35804e6"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_s_p_u_updater.html#aa5f5578c29e6496cb90546aca35804e6">automaticallyDownloadsUpdates</a></td></tr>
<tr class="memdesc:aa5f5578c29e6496cb90546aca35804e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">A property indicating whether or not updates can be automatically downloaded in the background. <a href="interface_s_p_u_updater.html#aa5f5578c29e6496cb90546aca35804e6">More...</a><br /></td></tr>
<tr class="separator:aa5f5578c29e6496cb90546aca35804e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af49bc6a058dc0e758943a4b4b1ff98dc"><td class="memItemLeft" align="right" valign="top">NSURL *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_s_p_u_updater.html#af49bc6a058dc0e758943a4b4b1ff98dc">feedURL</a></td></tr>
<tr class="memdesc:af49bc6a058dc0e758943a4b4b1ff98dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">The URL of the appcast used to download update information. <a href="interface_s_p_u_updater.html#af49bc6a058dc0e758943a4b4b1ff98dc">More...</a><br /></td></tr>
<tr class="separator:af49bc6a058dc0e758943a4b4b1ff98dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeae19dba9dc83ae9098279b0eed76d47"><td class="memItemLeft" align="right" valign="top"><a id="aeae19dba9dc83ae9098279b0eed76d47"></a>
NSBundle *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_s_p_u_updater.html#aeae19dba9dc83ae9098279b0eed76d47">hostBundle</a></td></tr>
<tr class="memdesc:aeae19dba9dc83ae9098279b0eed76d47"><td class="mdescLeft">&#160;</td><td class="mdescRight">The host bundle that is being updated. <br /></td></tr>
<tr class="separator:aeae19dba9dc83ae9098279b0eed76d47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0e335f7212dbd90668ea0bbef0f00c2"><td class="memItemLeft" align="right" valign="top"><a id="aa0e335f7212dbd90668ea0bbef0f00c2"></a>
NSBundle *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_s_p_u_updater.html#aa0e335f7212dbd90668ea0bbef0f00c2">sparkleBundle</a></td></tr>
<tr class="memdesc:aa0e335f7212dbd90668ea0bbef0f00c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The bundle this class (<a class="el" href="interface_s_p_u_updater.html" title="The main API in Sparkle for controlling the update mechanism.">SPUUpdater</a>) is loaded into. <br /></td></tr>
<tr class="separator:aa0e335f7212dbd90668ea0bbef0f00c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62757b3c7dea957c737527e854408e96"><td class="memItemLeft" align="right" valign="top">NSString *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_s_p_u_updater.html#a62757b3c7dea957c737527e854408e96">userAgentString</a></td></tr>
<tr class="memdesc:a62757b3c7dea957c737527e854408e96"><td class="mdescLeft">&#160;</td><td class="mdescRight">The user agent used when checking for updates. <a href="interface_s_p_u_updater.html#a62757b3c7dea957c737527e854408e96">More...</a><br /></td></tr>
<tr class="separator:a62757b3c7dea957c737527e854408e96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e2747823e204ebc07800ae31c201ad1"><td class="memItemLeft" align="right" valign="top">NSDictionary *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_s_p_u_updater.html#a2e2747823e204ebc07800ae31c201ad1">httpHeaders</a></td></tr>
<tr class="memdesc:a2e2747823e204ebc07800ae31c201ad1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The HTTP headers used when checking for updates. <a href="interface_s_p_u_updater.html#a2e2747823e204ebc07800ae31c201ad1">More...</a><br /></td></tr>
<tr class="separator:a2e2747823e204ebc07800ae31c201ad1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a521d2f6d09ceec6af979f6116bc58f7f"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_s_p_u_updater.html#a521d2f6d09ceec6af979f6116bc58f7f">sendsSystemProfile</a></td></tr>
<tr class="memdesc:a521d2f6d09ceec6af979f6116bc58f7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">A property indicating whether or not the user's system profile information is sent when checking for updates. <a href="interface_s_p_u_updater.html#a521d2f6d09ceec6af979f6116bc58f7f">More...</a><br /></td></tr>
<tr class="separator:a521d2f6d09ceec6af979f6116bc58f7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22a62559c6938c7a34b1787f22043010"><td class="memItemLeft" align="right" valign="top">NSDate *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_s_p_u_updater.html#a22a62559c6938c7a34b1787f22043010">lastUpdateCheckDate</a></td></tr>
<tr class="memdesc:a22a62559c6938c7a34b1787f22043010"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the date of last update check. <a href="interface_s_p_u_updater.html#a22a62559c6938c7a34b1787f22043010">More...</a><br /></td></tr>
<tr class="separator:a22a62559c6938c7a34b1787f22043010"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90e21876539a0dab3eacfccad863aaa2"><td class="memItemLeft" align="right" valign="top"><a id="a90e21876539a0dab3eacfccad863aaa2"></a>
NSArray&lt; NSDictionary&lt; NSString *, NSString * &gt; * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_s_p_u_updater.html#a90e21876539a0dab3eacfccad863aaa2">systemProfileArray</a></td></tr>
<tr class="memdesc:a90e21876539a0dab3eacfccad863aaa2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The system profile information that is sent when checking for updates. <br /></td></tr>
<tr class="separator:a90e21876539a0dab3eacfccad863aaa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The main API in Sparkle for controlling the update mechanism. </p>
<p>This class is used to configure the update parameters as well as manually and automatically schedule and control checks for updates. </p>
</div><h2 class="groupheader">Method Documentation</h2>
<a id="ad38751e23aa42be220206e7e671c697d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad38751e23aa42be220206e7e671c697d">&#9670;&nbsp;</a></span>checkForUpdateInformation</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) checkForUpdateInformation </td>
<td></td>
<td class="paramname"></td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Begins a "probing" check for updates which will not actually offer to update to that version. </p>
<p>However, the delegate methods <a class="el" href="protocol_s_p_u_updater_delegate-p.html#a155defe95c694f91c46f81baff2c99d9" title="Called when a valid update is found by the update driver.">updater:didFindValidUpdate: (SPUUpdaterDelegate-p)</a> and <a class="el" href="protocol_s_p_u_updater_delegate-p.html#ad112453ce92617e3356a7cd5c4d0658b" title="Called when a valid update is not found.">updaterDidNotFindUpdate: (SPUUpdaterDelegate-p)</a> will be called, so you can use that information in your UI.</p>
<p>Updates that have been skipped by the user will not be found. </p>
</div>
</div>
<a id="a7df56bb150d327beb72b7b050799790d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7df56bb150d327beb72b7b050799790d">&#9670;&nbsp;</a></span>checkForUpdates</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) checkForUpdates </td>
<td></td>
<td class="paramname"></td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks for updates, and displays progress while doing so if needed. </p>
<p>This is meant for users initiating a new update check or checking the current update progress.</p>
<p>If an update hasn't started, the user may be shown that a new check for updates is occurring. If an update has already been downloaded or begun installing, the user may be presented to install that update. If the user is already being presented with an update, that update will be shown to the user in active focus.</p>
<p>This will find updates that the user has previously opted into skipping.</p>
<p>See canCheckForUpdates property which can determine if this method may be invoked. </p>
</div>
</div>
<a id="a2e1e3ca715f29bae7ee0b16e15e34850"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e1e3ca715f29bae7ee0b16e15e34850">&#9670;&nbsp;</a></span>checkForUpdatesInBackground</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) checkForUpdatesInBackground </td>
<td></td>
<td class="paramname"></td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks for updates, but does not display any UI unless an update is found. </p>
<p>This is meant for programmatically initating a check for updates. That is, it will display no UI unless it finds an update, in which case it proceeds as usual. This will not find updates that the user has opted into skipping.</p>
<p>Note if there is no resumable update found, and automated updating is turned on, the update will be downloaded in the background without disrupting the user. </p>
</div>
</div>
<a id="aed247e3fde0667e50b8d2345e84033e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed247e3fde0667e50b8d2345e84033e1">&#9670;&nbsp;</a></span>initWithHostBundle:applicationBundle:userDriver:delegate:</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (instancetype) initWithHostBundle: </td>
<td></td>
<td class="paramtype">(NSBundle *)&#160;</td>
<td class="paramname"><em>hostBundle</em></td>
</tr>
<tr>
<td class="paramkey">applicationBundle:</td>
<td></td>
<td class="paramtype">(NSBundle *)&#160;</td>
<td class="paramname"><em>applicationBundle</em></td>
</tr>
<tr>
<td class="paramkey">userDriver:</td>
<td></td>
<td class="paramtype">(id&lt; <a class="el" href="protocol_s_p_u_user_driver-p.html">SPUUserDriver</a> &gt;)&#160;</td>
<td class="paramname"><em>userDriver</em></td>
</tr>
<tr>
<td class="paramkey">delegate:</td>
<td></td>
<td class="paramtype">(id&lt; <a class="el" href="protocol_s_p_u_updater_delegate-p.html">SPUUpdaterDelegate</a> &gt; _Nullable)&#160;</td>
<td class="paramname"><em>delegate</em>&#160;</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new <a class="el" href="interface_s_p_u_updater.html" title="The main API in Sparkle for controlling the update mechanism.">SPUUpdater</a> instance. </p>
<p>This does not start the updater. To start it, see -[<a class="el" href="interface_s_p_u_updater.html" title="The main API in Sparkle for controlling the update mechanism.">SPUUpdater</a> startUpdater:]</p>
<p>Note that this is a normal initializer and doesn't implement the singleton pattern (i.e, instances aren't cached, so no surprises) This also means that updater instances can be deallocated, and that they will be torn down properly.</p>
<p>Related: See <a class="el" href="interface_s_p_u_standard_updater_controller.html" title="A controller class that instantiates a SPUUpdater and allows binding UI to it.">SPUStandardUpdaterController</a> which wraps a <a class="el" href="interface_s_p_u_updater.html" title="The main API in Sparkle for controlling the update mechanism.">SPUUpdater</a> instance and is suitable for instantiating in nib files</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">hostBundle</td><td>The bundle that should be targetted for updating. This must not be nil. </td></tr>
<tr><td class="paramname">applicationBundle</td><td>The application bundle that should be waited for termination and relaunched (unless overridden). Usually this can be the same as hostBundle. This may differ when updating a plug-in or other non-application bundle. </td></tr>
<tr><td class="paramname">userDriver</td><td>The user driver that Sparkle uses for user update interaction </td></tr>
<tr><td class="paramname">delegate</td><td>The delegate for <a class="el" href="interface_s_p_u_updater.html" title="The main API in Sparkle for controlling the update mechanism.">SPUUpdater</a>. This may be nil. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac2907583983833ce9f09bee2867d7654"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2907583983833ce9f09bee2867d7654">&#9670;&nbsp;</a></span>NS_UNAVAILABLE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (instancetype) NS_UNAVAILABLE </td>
<td></td>
<td class="paramname"></td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Use -initWithHostBundle:applicationBundle:userDriver:delegate: or <a class="el" href="interface_s_p_u_standard_updater_controller.html" title="A controller class that instantiates a SPUUpdater and allows binding UI to it.">SPUStandardUpdaterController</a> standard adapter instead. </p>
<p>If you want to drop an updater into a nib, use <a class="el" href="interface_s_p_u_standard_updater_controller.html" title="A controller class that instantiates a SPUUpdater and allows binding UI to it.">SPUStandardUpdaterController</a>. </p>
</div>
</div>
<a id="aefe1e7f5ae5b8e02f1d7beab189b51af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aefe1e7f5ae5b8e02f1d7beab189b51af">&#9670;&nbsp;</a></span>resetUpdateCycle</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) resetUpdateCycle </td>
<td></td>
<td class="paramname"></td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Appropriately schedules or cancels the update checking timer according to the preferences for time interval and automatic checks. </p>
<p>This call does not change the date of the next check, but only the internal timer. </p>
</div>
</div>
<a id="adfaabdc767d7a7668c8e472e45abd635"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adfaabdc767d7a7668c8e472e45abd635">&#9670;&nbsp;</a></span>setFeedURL:</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (void) setFeedURL: </td>
<td></td>
<td class="paramtype">(NSURL *_Nullable)&#160;</td>
<td class="paramname"><em>feedURL</em></td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the URL of the appcast used to download update information. </p>
<p>Using this method is discouraged.</p>
<p>Setting this property will persist in the host bundle's user defaults. To avoid this, you should consider instead implementing -[<a class="el" href="protocol_s_p_u_updater_delegate-p.html" title="Provides methods to control the behavior of an SPUUpdater object.">SPUUpdaterDelegate</a> feedURLStringForUpdater:]</p>
<p>Passing nil will remove any feed URL that has been set in the host bundle's user defaults.</p>
<p>For beta updates, you may consider migrating to -[<a class="el" href="protocol_s_p_u_updater_delegate-p.html" title="Provides methods to control the behavior of an SPUUpdater object.">SPUUpdaterDelegate</a> allowedChannelsForUpdater:] in the future.</p>
<p>This method must be called on the main thread; calls from background threads will have no effect. </p>
</div>
</div>
<a id="a30c0f163e0fbc7b100f84c64b491b353"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30c0f163e0fbc7b100f84c64b491b353">&#9670;&nbsp;</a></span>startUpdater:</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">- (BOOL) startUpdater: </td>
<td></td>
<td class="paramtype">(NSError *__autoreleasing *)&#160;</td>
<td class="paramname"><em>error</em></td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Starts the updater. </p>
<p>This method checks if Sparkle is configured properly. A valid feed URL should be set before this method is invoked. Other properties of this <a class="el" href="interface_s_p_u_updater.html" title="The main API in Sparkle for controlling the update mechanism.">SPUUpdater</a> instance can be set before this method is invoked as well, such as automatic update checks.</p>
<p>If the configuration is valid, an update cycle is started in the next main runloop cycle. During this cycle, a permission prompt may be brought up (if needed) for checking if the user wants automatic update checking. Otherwise if automatic update checks are enabled, a scheduled update alert may be brought up if enough time has elapsed since the last check.</p>
<p>After starting the updater and before the next runloop cycle, one of -checkForUpdates, -checkForUpdatesInBackground, or -checkForUpdateInformation can be invoked. This may be useful if you want to check for updates immediately or without showing a permission prompt.</p>
<p>If the updater cannot be started (i.e, due to a configuration issue in the application), you may want to fall back appropriately. For example, the standard updater controller (<a class="el" href="interface_s_p_u_standard_updater_controller.html" title="A controller class that instantiates a SPUUpdater and allows binding UI to it.">SPUStandardUpdaterController</a>) alerts the user that the app is misconfigured and to contact the developer.</p>
<p>This must be called on the main thread.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">error</td><td>The error that is populated if this method fails. Pass NULL if not interested in the error information. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>YES if the updater started otherwise NO with a populated error </dd></dl>
</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a id="a9a154002bdbe3306e763d000502a0980"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a154002bdbe3306e763d000502a0980">&#9670;&nbsp;</a></span>automaticallyChecksForUpdates</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">- (BOOL) automaticallyChecksForUpdates</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A property indicating whether or not to check for updates automatically. </p>
<p>Setting this property will persist in the host bundle's user defaults. The update schedule cycle will be reset in a short delay after the property's new value is set. This is to allow reverting this property without kicking off a schedule change immediately </p>
</div>
</div>
<a id="aa5f5578c29e6496cb90546aca35804e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa5f5578c29e6496cb90546aca35804e6">&#9670;&nbsp;</a></span>automaticallyDownloadsUpdates</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">- (BOOL) automaticallyDownloadsUpdates</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A property indicating whether or not updates can be automatically downloaded in the background. </p>
<p>Note that the developer can disallow automatic downloading of updates from being enabled. In this case, -automaticallyDownloadsUpdates will return NO regardless of how this property is set.</p>
<p>Setting this property will persist in the host bundle's user defaults. </p>
</div>
</div>
<a id="aa8ec4e87308007ae49228165534e683c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8ec4e87308007ae49228165534e683c">&#9670;&nbsp;</a></span>canCheckForUpdates</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">- (BOOL) canCheckForUpdates</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A property indicating whether or not updates can be checked by the user. </p>
<p>An update check can be made by the user when an update session isn't in progress, or when an update or its progress is being shown to the user.</p>
<p>This property is suitable to use for menu item validation for seeing if -checkForUpdates can be invoked.</p>
<p>Note this property does not reflect whether or not an update session is in progress. Please see sessionInProgress property instead. </p>
</div>
</div>
<a id="af49bc6a058dc0e758943a4b4b1ff98dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af49bc6a058dc0e758943a4b4b1ff98dc">&#9670;&nbsp;</a></span>feedURL</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">- (NSURL*) feedURL</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The URL of the appcast used to download update information. </p>
<p>If the updater's delegate implements -[<a class="el" href="protocol_s_p_u_updater_delegate-p.html" title="Provides methods to control the behavior of an SPUUpdater object.">SPUUpdaterDelegate</a> feedURLStringForUpdater:], this will return that feed URL. Otherwise if the feed URL has been set before, the feed URL returned will be retrieved from the host bundle's user defaults. Otherwise the feed URL in the host bundle's Info.plist will be returned. If no feed URL can be retrieved, returns nil.</p>
<p>This property must be called on the main thread; calls from background threads will return nil. </p>
</div>
</div>
<a id="a2e2747823e204ebc07800ae31c201ad1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e2747823e204ebc07800ae31c201ad1">&#9670;&nbsp;</a></span>httpHeaders</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">- (NSDictionary*) httpHeaders</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">copy</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The HTTP headers used when checking for updates. </p>
<p>The keys of this dictionary are HTTP header fields (NSString) and values are corresponding values (NSString) </p>
</div>
</div>
<a id="a22a62559c6938c7a34b1787f22043010"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22a62559c6938c7a34b1787f22043010">&#9670;&nbsp;</a></span>lastUpdateCheckDate</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">- (NSDate*) lastUpdateCheckDate</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">copy</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the date of last update check. </p>
<dl class="section return"><dt>Returns</dt><dd><code>nil</code> if no check has been performed. </dd></dl>
</div>
</div>
<a id="a521d2f6d09ceec6af979f6116bc58f7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a521d2f6d09ceec6af979f6116bc58f7f">&#9670;&nbsp;</a></span>sendsSystemProfile</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">- (BOOL) sendsSystemProfile</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A property indicating whether or not the user's system profile information is sent when checking for updates. </p>
<p>Setting this property will persist in the host bundle's user defaults. </p>
</div>
</div>
<a id="aebc820be90ea36d0d97c6f11e80f3a4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebc820be90ea36d0d97c6f11e80f3a4f">&#9670;&nbsp;</a></span>sessionInProgress</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">- (BOOL) sessionInProgress</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A property indicating whether or not an update session is in progress. </p>
<p>An update session is in progress when the appcast is being downloaded, an update is being downloaded, an update is being shown, update permission is being requested, or the installer is being started. An active session is when Sparkle's fired scheduler is running.</p>
<p>Note an update session may be inactive even though Sparkle's installer (ran as a separate process) may be running, or even though the update has been downloaded but the installation has been deferred. In both of these cases, a new update session may be activated with the update resumed at a later point (automatically or manually).</p>
<p>See also canCheckForUpdates property which is more suited for menu item validation. </p>
</div>
</div>
<a id="a1b2a4bc575d1f9de57e189ca93bda22a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b2a4bc575d1f9de57e189ca93bda22a">&#9670;&nbsp;</a></span>updateCheckInterval</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">- (NSTimeInterval) updateCheckInterval</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A property indicating the current automatic update check interval. </p>
<p>Setting this property will persist in the host bundle's user defaults. The update schedule cycle will be reset in a short delay after the property's new value is set. This is to allow reverting this property without kicking off a schedule change immediately </p>
</div>
</div>
<a id="a62757b3c7dea957c737527e854408e96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62757b3c7dea957c737527e854408e96">&#9670;&nbsp;</a></span>userAgentString</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">- (NSString*) userAgentString</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">copy</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The user agent used when checking for updates. </p>
<p>The default implementation can be overrided. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>Sparkle/<a class="el" href="_s_p_u_updater_8h_source.html">SPUUpdater.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>