Verificador de appcast do Sparkle
Cole o appcast que o seu app lê a partir da SUFeedURL. Ele é lido aqui mesmo, nesta página, e nada é buscado ou enviado.
Teste um exemplo:
O que faz
O Sparkle é o framework de atualização que a maioria dos apps de Mac vendidos fora da Mac App Store usa. O seu app lê um pequeno arquivo RSS, o appcast, e cada <item> dele é uma versão. Esta ferramenta lê o appcast que você cola e confere cada versão com a documentação de publicação do próprio Sparkle: se tem uma versão que o Sparkle consegue comparar, um download em https com tamanho e assinatura EdDSA, uma versão mínima do macOS e uma data. Ela também pega os erros que quebram o feed inteiro, como a falta do namespace do Sparkle ou um & solto em um endereço de download.
Como é uma boa versão
<item>
<title>Version 2.1</title>
<pubDate>Sat, 07 Nov 2026 09:30:00 +0000</pubDate>
<sparkle:version>210</sparkle:version>
<sparkle:shortVersionString>2.1</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>14.0.0</sparkle:minimumSystemVersion>
<enclosure url="https://yourapp.com/YourApp-2.1.zip" length="8412337"
type="application/octet-stream" sparkle:edSignature="..."/>
</item>A tag <rss> no topo precisa de xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle". A ferramenta generate_appcast do Sparkle escreve quase tudo isso para você, incluindo a assinatura e a length.
O que cada resultado significa
| Marca | O que significa |
|---|---|
| Corrigir | O Sparkle não consegue ler o feed, não consegue comparar a versão ou não vai instalá-la. |
| Aparência | Funciona, mas a versão pode chegar a Macs que não conseguem executá-la, ou falta algo que a documentação do Sparkle pede. |
| OK | Definido como a documentação do Sparkle descreve. |
| Nota | Uma configuração que vale conhecer, como um canal ou uma atualização crítica. |
Fontes: Sparkle, publicar uma atualização, documentação do Sparkle e Sparkle, migração para EdDSA, todas lidas em 8 de novembro de 2026.
Como funciona
São algumas regras de texto simples rodando nesta página. Ela não baixa a sua atualização, então não consegue conferir se a assinatura combina com a sua chave nem se o atributo length combina com o arquivo: o Sparkle faz as duas coisas na hora de instalar. Ela também não busca o seu feed, então cole o texto em vez do endereço. sparkle:hardwareRequirements exige o Sparkle 2.9 ou mais novo na cópia do seu app que as pessoas já têm. Cópias mais antigas ignoram isso. Nada do que você cola é salvo ou enviado.
Perguntas
O que é um appcast do Sparkle?
Um arquivo RSS no seu servidor que lista as versões do seu app de Mac. O Sparkle, dentro do seu app, lê esse arquivo a partir da SUFeedURL no seu Info.plist e oferece qualquer versão mais nova do que a instalada.
Toda atualização do Sparkle precisa de uma assinatura EdDSA?
A documentação do Sparkle diz que você precisa assinar as suas atualizações, e o generate_appcast assina por você. Um app com SUPublicEDKey no Info.plist confere a assinatura antes de instalar qualquer coisa.
Como impeço que uma atualização chegue a Macs que não conseguem executá-la?
Adicione sparkle:minimumSystemVersion à versão, com três partes como 14.0.0. A partir do Sparkle 2.9, você também pode adicionar sparkle:hardwareRequirements com arm64 para uma build que só roda em Apple silicon.
Qual número de versão o Sparkle compara?
sparkle:version, comparada com o CFBundleVersion do app que o usuário tem. sparkle:shortVersionString é só o que as pessoas veem.
O que eu colo é enviado para algum lugar?
Não. O texto é lido nesta página e nada é buscado, enviado ou guardado.