Andy Matuschak sembra indicare che Sparkle può realmente gestire 'il download solo' con grazia per voi. Nelle sue parole, è sufficiente lasciare lo dal tuo <item>
e aggiungere un elemento <sparkle:version>2.0</sparkle:version>
come figlio di <item>
.
leggere il suo commento qui: https://github.com/sparkle-project/Sparkle/issues/227#issuecomment-13192723
Proprio come Fermat prima di lui, ha lasciato fuori un pezzo di informazione. Ma a differenza del teorema, abbiamo accesso al codice sorgente di Sparkle, in particolare SUAppcastItem.m
. Grazie al codice, ho capito che il pezzo mancante era un tag <link>
. Ecco un esempio appcast:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>FooBar</title>
<link>http://foobar.com/appcast.xml</link>
<description>Most recent changes with links to updates.</description>
<language>en</language>
<item>
<title>FooBar 2.0</title>
<sparkle:releaseNotesLink>http://foobar.com/release-notes-special.html</sparkle:releaseNotesLink>
<sparkle:minimumSystemVersion>10.9.0</sparkle:minimumSystemVersion>
<pubDate>2014-04-14T18:40:44+02:00</pubDate>
<sparkle:version>2013</sparkle:version>
<sparkle:shortVersionString>2.0</sparkle:shortVersionString>
<link>http://foobar.com/release-notes-special.html</link>
</item>
</channel>
</rss>
Nell'applicazione sandbox che riceve che appcast e non può essere aggiornato in caso contrario, il 'Installare l'aggiornamento' è andato, e al suo posto è presente un pulsante 'Learn More' che porterà il utente all'URL in quello <link>
. Questo è un buon posto per avere istruzioni per il download.
Nella prossima versione della tua app, potresti quindi utilizzare un URL diverso per l'appcast, in modo che l'appcast precedente si applichi solo alle versioni precedenti (supponendo che tu abbia aggiustato le cose e ora usi il trucco XPC non ufficiale con Sparkle) .
Siamo attualmente in fase di fusione del supporto sandboxing in Sparkle, vedere https://github.com/sparkle-project/Sparkle/issues/363 per maggiori informazioni. –